禁用然后启用提交按钮

时间:2013-03-12 23:59:15

标签: jquery ajax

我正在尝试使用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();
    }
       });
    });

在每次检查中,我都会禁用提交按钮。 最后,如果任何验证范围有任何文本,则提交将不会被绑定; 问题是我第一次单击带有空白字段的提交按钮,没关系,它显示验证。但是当我再次单击提交按钮时,表单在字段仍为空时提交。 我的问题是什么?请帮帮我?

1 个答案:

答案 0 :(得分:0)

好的,首先这个验证,你使用的确应该只是“樱桃馅饼”。并帮助您实现更加用户友好的形式。您真的应该考虑使用一些预定义的表单检查库。最后但并非最不重要的是,始终在服务器端验证。

要解释有什么问题,请看这个jsfiddle: http://jsfiddle.net/JLySr/

文本中的每个小空间都允许/禁止您通过验证。 所以在第一次验证之后,ajax可能会返回一个空格或类似的东西...... 你可以通过修剪文本来改善这一点:

var a= $(".formCheck:eq("+i+") span").text().trim();

但这仍然是 NOT 真正的验证。您可能知道在客户端删除部分网页非常容易。