PHP表单JS验证的一个简单问题 20

<?phpinclude("./ctrol/get.php");if($_POST[submit]){$add=newtras;$add->ins();echo"<scr... <?php
include("./ctrol/get.php");
if($_POST[submit]){

$add = new tras;
$add -> ins();
echo"<script>location.href='index.php'</script>";
}
?>
<script language="javascript">
function change(){
if (myform.name.value=="")
{
alert("请填写用户名");
myform.user.focus();
return false;
}
if (myform.age.value=="")
{
alert("请填写年龄");
myform.content.focus();
return false;
}
if(myform.sex.checked==false){
alert("请选择性别");
}
return true;
}
</script>
现在一点提交,不管有没有内容都会传到数据库里而且不合格时也跳转,哪位高手给看看。
希望达到的效果是先JS,JS全部通过后,再提交到PHP。
展开
 我来答
百度网友598742b
2012-01-12 · TA获得超过1627个赞
知道小有建树答主
回答量:2655
采纳率:100%
帮助的人:1265万
展开全部
如果你写的是正确的话应该是这样对表单验证的

<form name="theForm" onsubmit="return change();">
.....
</form>

这样如果你的JS验证代码无误的话,应该是运行正常的。但这个有一个小问题,就是偶而会有些莫名其妙的东西出来,就是明明表单有错误却无缘无故可以提交。

我一般是这样处理的:

<form name="theForm" >
.....
<input type="button" value="提交" onclick="change(this.form);">
</form>
此处的FORM表单不采用 onsubmit 验证方法(注意上面代码的提交按钮,不是submit而是button)。而是交给JS去处理,将整个FORM表单当成参数传递给验证函数,我修改下你的代码如下。

<script language="javascript">
function change(myform){
if (myform.name.value=="")
{
alert("请填写用户名");
myform.user.focus();
return false;
}
if (myform.age.value=="")
{
alert("请填写年龄");
myform.content.focus();
return false;
}
if(myform.sex.checked==false){
alert("请选择性别");
myform.sex.focus();
return false;
}

myform.submit(); //如果上面的全部能过,则提交表单。
}
</script>
更多追问追答
追问
这样写验证肯定是没问题了,但不提交只验证也没什么意义啊,目的是验证成功后提交
目前代码不管是PHP还是JS都能单独实现,问题只是怎么能合起来。
追答
一个简单的表单验证不知道为什么被你搞的那么复杂,不知道你到底想要什么。什么叫不提交只验证?你仔细看代码没有。写了三年的JS连你这点问题我还想到你后面去了不成??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a459803275
2012-01-12 · TA获得超过493个赞
知道小有建树答主
回答量:1304
采纳率:0%
帮助的人:743万
展开全部
<script language="javascript">
function change(){
if(document.myform.name.value=="")
{
alert("请填写年龄用户名!");
document.myform.name.focus();
return false;
}
if(document.myform.age.value=="")
{
alert("请填写年龄");
document.myform.age.focus();
return false;
}
if(myform.sex.checked==false){
alert("请选择性别");
}
return true;
}
</script>

<form name="myform" action="#" method="get" onsubmit="return change()">
用户名:<input name="name" type="text" /><br />
年龄:<input name="age" type="text" /><br />
<input name="" type="submit" value="提交" />
</form>
追问
这样写验证肯定是没问题了,但不提交只验证也没什么意义啊,目的是验证成功后提交
目前代码不管是PHP还是JS都能单独实现,问题只是怎么能合起来。
追答
我倒。。。看来是个新手。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
铂金羊羊羊
2012-01-12 · TA获得超过1043个赞
知道小有建树答主
回答量:230
采纳率:100%
帮助的人:212万
展开全部
把 onsubmit="return change()" 加到 <form>标签里去就可以了.
例如:
<form action="" methd="post" onsubmit="return change()">
你可以把你的PHP判断删了,它只负责接收参数就可以了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cyan24
2012-01-12 · TA获得超过1626个赞
知道小有建树答主
回答量:1128
采纳率:0%
帮助的人:882万
展开全部
JS验证是在SUBMIT里面加个ONCLICK操作时进行判断的,不需要在PHP代码当中加,,
追问
那点击不还是提交了吗
追答
点击时会先执行ONCLICK里面返回的JS函数,TURE的话才会跳转到提交页面,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ppxxx1988
2012-01-12 · 超过20用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:59万
展开全部
onclick="return change()" 试试
追问
是这样吗?还是不行
追答
放form里面试试?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式