我正在尝试使用Ajax验证表单。我使用以下代码检查每一行: 数据传递给formValidate.php文件:
$(document).ready(function(){
$("form").submit(function(event){
stuId= $("input[name='stuId']").val();
stuName= $("input[name='stuName']").val();
stuDoB= $("input[name='stuDoB']").val();
stuAdd= $("input[name='stuAdd']").val();
$.get("formValidate.php?stuId="+stuId,function(data){
$(".formCheck:eq(0) span").text(data);
$.get("formValidate.php?stuName="+stuName,function(data){
$(".formCheck:eq(1) span").text(data);
$.get("formValidate.php?stuDoB="+stuDoB,function(data){
$(".formCheck:eq(2) span").text(data);
$.get("formValidate.php?stuAdd="+stuAdd,function(data){
$(".formCheck:eq(3) span").text(data);
});
});
});
});
event.preventDefault();
for(var i=0;i<=3;i++) {
var a= $(".formCheck:eq("+i+") span").text();
if(!a)
break;
if(i==3)
$("form").unbind('submit').submit();
}
});
});
在每次检查中,我都会禁用提交按钮。 最后,如果任何验证范围有任何文本,则提交将不会被绑定; 问题是我第一次单击带有空白字段的提交按钮,没关系,它显示验证。但是当我再次单击提交按钮时,表单在字段仍为空时提交。 我的问题是什么?请帮帮我?
答案 0 :(得分:0)
好的,首先这个验证,你使用的确应该只是“樱桃馅饼”。并帮助您实现更加用户友好的形式。您真的应该考虑使用一些预定义的表单检查库。最后但并非最不重要的是,始终在服务器端验证。
要解释有什么问题,请看这个jsfiddle: http://jsfiddle.net/JLySr/
文本中的每个小空间都允许/禁止您通过验证。 所以在第一次验证之后,ajax可能会返回一个空格或类似的东西...... 你可以通过修剪文本来改善这一点:
var a= $(".formCheck:eq("+i+") span").text().trim();
但这仍然是 NOT 真正的验证。您可能知道在客户端删除部分网页非常容易。