【问题标题】:jquery validation: prevent form submitjquery验证:防止表单提交
【发布时间】:2012-04-24 21:02:04
【问题描述】:

通过使用 jQuery 插件验证,我正在尝试验证我的表单。当验证通过时,我希望 javascript 使用表单中的值触发然后停止。浏览到新的/相同的站点时没有实际的表单提交。

这可以通过 jquery 验证实现吗?

【问题讨论】:

    标签: jquery jquery-validate


    【解决方案1】:

    你可以试试这个(Example):

    $(function(){
        $("#myform").validate();    
        $("#myform").on('submit', function(e) {
            var isvalid = $("#myform").valid();
            if (isvalid) {
                e.preventDefault();
                alert(getvalues("myform"));
            }
        });
    });
    
    function getvalues(f)
    {
        var form=$("#"+f);
        var str='';
        $("input:not('input:submit')", form).each(function(i){
            str+='\n'+$(this).prop('name')+': '+$(this).val();
        });
        return str;
    }
    

    【讨论】:

    • 遇到类似问题的页面。 ` var isvalidate=$("#myform").valid();` 正是我想要的。谢谢+1
    • 奇怪,在我的情况下,valid() 返回 false,但我无法停止使用 return falsee.preventDefault() 或两者都提交的表单!
    【解决方案2】:

    是的:

    $("form").submit(function(event) {
        if (somethingIsInvalid) { 
          event.preventDefault();
        }
    });
    

    【讨论】:

    • 简单而有逻辑
    【解决方案3】:
    $("#form").validate({
      rules: {...},
      submitHandler: function(form, event) { 
        event.preventDefault();
        alert("Do some stuff...");
        //submit via ajax
      }
    });
    

    【讨论】:

    • submitHandler 在提交无效表单时被触发。您可能需要包含 invalidHandler 以防止表单在无效时提交。
    【解决方案4】:

    有一个名为 .valid() 的方法在表单中没有错误的情况下返回 true,因此您可以先使用它进行验证,然后将表单发送到此处的文档

    http://docs.jquery.com/Plugins/Validation/valid

    【讨论】:

    • 出于某种原因,这似乎总是为我返回true
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    相关资源
    最近更新 更多