需要if / then声明javascript验证器

时间:2012-04-22 09:20:42

标签: javascript

使用Jquery验证器,我可以使用以下if语句确保我的表单在继续使用Ajax之前是有效的:

var frm = $(this).closest('form');        
        if($(frm).valid()){ 
                 AJAX JQUERY POST INFORMATION GOES HERE
                  };

现在我正在使用来自Javascript-Coder.com的Javascript Form Validator。问题是文档没有描述与valid()类似的函数或者在继续之前检查表单是否有效的方法。我在javascript中受限,可以真正使用社区的帮助来构建类似的if语句。

我正在运行验证,但即使验证失败,我的ajax脚本仍会继续运行完成。在非ajax应用程序中,验证效果很好,并在发布到php之前自动停止。但是使用ajax,当验证无法允许我的用户更正其操作时,我似乎无法停止脚本。

我尝试从Here收集一些东西,但它并没有让我足够接近做一些有用的事情。我尝试了那里提供的一些变化,但我遗漏了一些东西。

我的验证很有效,并且是:

<script  type="text/javascript">
    var frmvalidator = new Validator("send_message_frm");
    frmvalidator.EnableOnPageErrorDisplay();
    frmvalidator.EnableMsgsTogether();
    frmvalidator.addValidation("desc","alnum","Only numbers and letters are allowed");
    frmvalidator.addValidation("desc","req","Please enter a description");   
</script>

我的ajax脚本也可以正常工作,但如果验证失败,我需要它才能运行。它是:

$(document).ready(function(){
    //Validate form....what can I put here to test if validation is completed properly????

    //onclick handler send message btn
    $("#send-message").click(function(){
        $(this).closest('form').submit(function(){
            return false;
        });
        var frm = $(this).closest('form');        

            $("#ajax-loading").show();
            var data = $(frm).serialize();
            $(frm).find('textarea,select,input').attr('disabled', 'disabled');            
            $.post( 
                    "company_add.php", 
                    data, 
                    function(data){ 
                        $("#ajax-loading").hide();
                        $(frm).find('textarea,select,input').removeAttr('disabled');
                        $("#send_message_frm").prepend(data);
                    } 
           );
        }
    );
    });
</script>

0 个答案:

没有答案