表单提交到php之前的Jquery验证

时间:2011-04-26 20:18:48

标签: javascript jquery validation forms

我已经尝试过这个并且似乎没有到达任何地方,所以我想我会把它放在那里。我有一个由用户提供的数据表格,我到目前为止能够在没有问题的情况下使用js / jQuery进行验证,然后再将其发送到php进行进一步处理。我这样做是这样的:

form.submit(function(){  
            if(validateUserName() & validateEmail1() & validateEmail2() & validatePass1() & validatePass2() & acceptTerms()){
                return true;
            } else  {
                return false;  
            }
        });

表单本身使用以下属性:

<form id="signup" action="registration.php" method="post">

问题函数是acceptTerms(),它只需检查选中的复选框似乎不应该正常工作(或者与其他验证函数一样)。

    var termscons = $('input:checkbox[name=termscons]');

    termscons.change(acceptTerms);

    function acceptTerms(){
        if($(termscons).is(':checked')) {

            termsconsInfo.text("");
            return true;
        } else {
            termsconsInfo.text("In order to join, you must accept these terms and conditions.");
            return false;
        }

    }

我已经集成了termscons.change侦听器和termsconsInfo.text("");以确保我的选择器指向正确的东西,并且正确地触发了该函数(通过更改{{ 1}}当状态发生变化时)。当我尝试提交表单时,它似乎返回false,因为它不提交。它实际上应该返回true,并将我的表单发布到我的php脚本。

我是以正确的方式来做这件事的吗?在处理复选框而不是文本输入时,是否有一些我一直缺少的东西?

请原谅我的无知,这对我来说还是很新鲜的。

2 个答案:

答案 0 :(得分:0)

第一个问题是您在if语句中使用&。它必须是&&

第二个问题是acceptTerms(正如您猜测的那样):

var termscons = $('input:checkbox[name=termscons]');

termscons.change(acceptTerms);

function acceptTerms(){
    if(termscons.is(':checked')) {      // <-- termscons is already a jQuery object

        termsconsInfo.text("");
        return true;
    } else {
        termsconsInfo.text("In order to join, you must accept these terms and conditions.");
        return false;
    }

}

可能会有更多,但这就是我现在所看到的。

答案 1 :(得分:0)

我说忘记重新发明轮子并使用已经测试过的东西,例如jQuery validate