PHP表单JS验证的一个简单问题
答案:5 悬赏:0 手机版
解决时间 2021-04-06 10:16
- 提问者网友:龅牙恐龙妹
- 2021-04-05 14:07
<?php<br>include("./ctrol/get.php");<br> if($_POST[submit]){<br><br> $add = new tras;<br> $add -> ins();<br> echo"<script>location.href='index.php'</script>";<br> }<br>?><br><script language="javascript"><br>function change(){<br> if (myform.name.value=="")<br> {<br> alert("请填写用户名");<br> myform.user.focus();<br> return false;<br> }<br> if (myform.age.value=="")<br> {<br> alert("请填写年龄");<br> myform.content.focus();<br> return false;<br> }<br> if(myform.sex.checked==false){<br> alert("请选择性别");<br> }<br> return true;<br>}<br></script><br>现在一点提交,不管有没有内容都会传到数据库里而且不合格时也跳转,哪位高手给看看。<br>希望达到的效果是先JS,JS全部通过后,再提交到PHP。
最佳答案
- 五星知识达人网友:青尢
- 2021-04-05 15:21
如果你写的是正确的话应该是这样对表单验证的<br><br><form name="theForm" onsubmit="return change();"><br> .....<br></form><br><br>这样如果你的JS验证代码无误的话,应该是运行正常的。但这个有一个小问题,就是偶而会有些莫名其妙的东西出来,就是明明表单有错误却无缘无故可以提交。<br><br>我一般是这样处理的:<br><br><form name="theForm" ><br> .....<br> <input type="button" value="提交" onclick="change(this.form);"><br></form><br>此处的FORM表单不采用 onsubmit 验证方法(注意上面代码的提交按钮,不是submit而是button)。而是交给JS去处理,将整个FORM表单当成参数传递给验证函数,我修改下你的代码如下。<br><br><script language="javascript"><br>function change(myform){<br> if (myform.name.value=="")<br> {<br> alert("请填写用户名");<br> myform.user.focus();<br> return false;<br> }<br> if (myform.age.value=="")<br> {<br> alert("请填写年龄");<br> myform.content.focus();<br> return false;<br> }<br> if(myform.sex.checked==false){<br> alert("请选择性别");<br> myform.sex.focus();<br> return false;<br> }<br><br> myform.submit(); //如果上面的全部能过,则提交表单。 <br>}<br></script>
全部回答
- 1楼网友:鸽屿
- 2021-04-05 19:23
直接写成一个类了。。 功能强大。
<title>表单验证类 validator v1.05</title> <style>
body,td{font:normal 12px verdana;color:#333333}
input,textarea,select,td{font:normal 12px verdana;color:#333333;border:1px solid
#999999;background:#ffffff}
table{border-collapse:collapse;}
td{padding:3px}
input{height:20;}
textarea{width:80%;height:50px;overflow:auto;}
form{display:inline}
</style>
<table align="center">
<form name="theform" id="demo" method="get" onsubmit="return validator.validate(this,2)">
<tr>
<td>身份证号:</td><td><input name="card" datatype="idcard" msg="身份证号错误"></td>
</tr>
<tr>
<td>真实姓名:</td><td><input name="name" datatype="chinese" msg="真实姓名只允许中文"></td>
</tr>
<tr>
<td>id:</td><td><input name="username" datatype="username" msg="id名不符合规定"></td>
</tr>
<tr>
<td>英文名:</td><td><input name="nick" datatype="english" require="false" msg="英文名只允许英文字母"></td>
</tr>
<tr>
<td>主页:</td><td><input name="homepage" require="false" datatype="url" msg="非法的url"></td>
</tr>
<tr>
<td>密码:</td><td><input name="password" datatype="safestring" msg="密码不符合安全规则" type="password"></td>
</tr>
<tr>
<td>重复:</td><td><input name="repeat" datatype="repeat" to="password" msg="两次输入的密码不一致" type="password"></td>
</tr>
<tr>
<td>信箱:</td><td><input name="email" datatype="email" msg="信箱格式不正确"></td>
</tr>
<tr>
<td>信箱:</td><td><input name="email" datatype="repeat" to="email" msg="两次输入的信箱不一致"></td>
</tr>
<tr>
<td>qq:</td><td><input name="qq" require="false" datatype="qq" msg="qq号码不存在"></td>
</tr>
<tr>
<td>身份证:</td><td><input name="card" datatype="idcard" msg="身份证号码不正确"></td>
</tr>
<tr>
<td>年龄:</td><td><input name="year" datatype="range" msg="年龄必须在18~28之间" min="18" max="28"></td>
</tr>
<tr>
<td>年龄1:</td><td><input name="year1" require="false" datatype="compare" msg="年龄必须在18以上" to="18" operator="greaterthanequal"></td>
</tr>
<tr>
<td>电话:</td><td><input name="phone" require="false" datatype="phone" msg="电话号码不正确"></td>
</tr>
<tr>
<td>手机:</td><td><input name="mobile" require="false" datatype="mobile" msg="手机号码不正确"></td>
</tr>
<tr>
<td>生日:</td><td><input name="birthday" datatype="date" format="ymd" msg="生日日期不存在"></td>
</tr>
<tr>
<td>邮政编码:</td><td><input name="zip" datatype="custom" regexp="^[1-9]\d{5}$" msg="邮政编码不存在"></td>
</tr>
<tr>
<td>邮政编码:</td><td><input name="zip1" datatype="zip" msg="邮政编码不存在"></td>
</tr>
<tr>
<td>操作系统:</td><td><select name="operation" datatype="require" msg="未选择所用操作系统" ><option value="">选择您所用的操作系统</option><option value="win98">win98</option><option value="win2k">win2k</option><option value="winxp">winxp</option></select></td>
</tr>
<tr>
<td>所在省份:</td><td>广东<input name="province" value="1" type="radio">陕西<input name="province" value="2" type="radio">浙江<input name="province" value="3" type="radio">江西<input name="province" value="4" type="radio" datatype="group" msg="必须选定一个省份" ></td>
</tr>
<tr>
<td>爱好:</td><td>运动<input name="favorite" value="1" type="checkbox">上网<input name="favorite" value="2" type="checkbox">听音乐<input name="favorite" value="3" type="checkbox">看书<input name="favorite" value="4" type="checkbox"" datatype="group" min="2" max="3" msg="必须选择2~3种爱好"></td>
</tr>
<td>自我介绍:</td><td><textarea name="description" datatype="limit" max="10" msg="自我介绍内容必须在10个字之内">中文是一个字</textarea></td>
</tr>
<td>自传:</td><td><textarea name="history" datatype="limitb" min="3" max="10" msg="自传内容必须在[3,10]个字节之内">中文是两个字节t</textarea></td>
</tr>
<tr>
<td>相片上传:</td><td><input name="up" datatype="filter" msg="非法的文件格式" type="file" accept="jpg, gif, png"></td>
</tr>
<tr>
<td colspan="2"><input name="submit" type="submit" value="确定提交"><input onclick="validator.validate(document.getelementbyid('demo'))" value="检验模式1" type="button"><input onclick="validator.validate(document.getelementbyid('demo'),2)" value="检验模式2" type="button"><input onclick="validator.validate(document.getelementbyid('demo'),3)" value="检验模式3" type="button"></td>
</tr>
</form>
</table>
<script>
validator = {
require : /.+/,
email : /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
phone : /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,
mobile : /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
url : /^http:\/\/[a-za-z0-9]+\.[a-za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
idcard : "this.isidcard(value)",
currency : /^\d+(\.\d+)?$/,
number : /^\d+$/,
zip : /^[1-9]\d{5}$/,
qq : /^[1-9]\d{4,8}$/,
integer : /^[-\+]?\d+$/,
double : /^[-\+]?\d+(\.\d+)?$/,
english : /^[a-za-z]+$/,
chinese : /^[\u0391-\uffe5]+$/,
username : /^[a-z]\w{3,}$/i,
unsafe : /^(([a-z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
issafe : function(str){return !this.unsafe.test(str);},
safestring : "this.issafe(value)",
filter : "this.dofilter(value, getattribute('accept'))",
limit : "this.limit(value.length,getattribute('min'), getattribute('max'))",
limitb : "this.limit(this.lenb(value), getattribute('min'), getattribute('max'))",
date : "this.isdate(value, getattribute('min'), getattribute('format'))",
repeat : "value == document.getelementsbyname(getattribute('to'))[0].value",
range : "getattribute('min') < (value|0) && (value|0) < getattribute('max')",
compare : "this.compare(value,getattribute('operator'),getattribute('to'))",
custom : "this.exec(value, getattribute('regexp'))",
group : "this.mustchecked(getattribute('name'), getattribute('min'), getattribute('max'))",
erroritem : [document.forms[0]],
errormessage : ["以下原因导致提交失败:\t\t\t\t"],
validate : function(theform, mode){
var obj = theform || event.srcelement;
var count = obj.elements.length;
this.errormessage.length = 1;
this.erroritem.length = 1;
this.erroritem[0] = obj;
for(var i=0;i<count;i++){
with(obj.elements[i]){
var _datatype = getattribute("datatype");
if(typeof(_datatype) == "object" || typeof(this[_datatype]) == "undefined") continue;
this.clearstate(obj.elements[i]);
if(getattribute("require") == "false" && value == "") continue;
switch(_datatype){
case "idcard" :
case "date" :
case "repeat" :
case "range" :
case "compare" :
case "custom" :
case "group" :
case "limit" :
case "limitb" :
case "safestring" :
case "filter" :
if(!eval(this[_datatype])) {
this.adderror(i, getattribute("msg"));
}
break;
- 2楼网友:从此江山别
- 2021-04-05 18:41
JS验证是在SUBMIT里面加个ONCLICK操作时进行判断的,不需要在PHP代码当中加,,
- 3楼网友:逐風
- 2021-04-05 17:26
把 onsubmit="return change()" 加到
- 4楼网友:话散在刀尖上
- 2021-04-05 16:22
<script language="javascript"><br>function change(){<br> if(document.myform.name.value=="")<br> {<br> alert("请填写年龄用户名!");<br> document.myform.name.focus();<br> return false;<br> }<br> if(document.myform.age.value=="")<br> {<br> alert("请填写年龄");<br> document.myform.age.focus();<br> return false;<br> }<br> if(myform.sex.checked==false){<br> alert("请选择性别");<br> }<br> return true;<br>}<br></script><br><br><form name="myform" action="#" method="get" onsubmit="return change()"><br>用户名:<input name="name" type="text" /><br /><br>年龄:<input name="age" type="text" /><br /><br><input name="" type="submit" value="提交" /><br></form>
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯