jQuery验证在单击按钮期间不起作用

山姆

我有一个简单的页面,其中包含表单和表单外部的按钮。我试图在单击按钮时验证表单。我已经在document.onready函数中添加了验证表单的规则。但是,该表单尚未得到验证。

的HTML

<form id="form1" method="post" action="">
  <div>
    <input name="Name" id="name1" data-errorclass="error-name"/>
  </div>
  <input type="submit" id="name_id" value="Save"/>
</form>

JS

$(document).ready(function () {
   $("#name_id").click(function() {
     alert("called");
     $('.form1').validate({
       rules: {
        'Name' : {
            required: true
         }

       },
       messages: {
        'Name' : {
            required: 'Name is  required'
         }
       },
       errorClass: 'error-name',
       errorPlacement: function(err, element) {
        err.insertBefore(element);
        },        
     });
   });
});

小提琴

活泼的

如前所述,原代码是一个目标class.form1而实际的形式包含id="form1"将选择器固定到目标位置即可id快速解决此问题。

$('#form1`).validate({...

尽管已经发布了答案,但我仍需要发布一些有关此插件的常见误解的重要说明。

.validate()方法仅用于插件初始化,而不用于测试有效性。所以把.validate()一个内部click处理程序是没有意义的。.validate()只需一次调用,因此每次单击重复调用是多余且不必要的。

只要提交按钮位于<form>标签内,就不需要click处理程序,因为该处理程序将由插件自动捕获。请参阅:http//jsfiddle.net/B5mVh/6/

如果按钮在之外,则<form>可以使用.valid()方法测试表单的有效性。

$(document).ready(function () {

    $('#form1').validate({  // <-- INITIALIZE plugin on your form
        // your rules & options      
    });

    // For button OUTSIDE of form tags
    $("#name_id").click(function() {
        if ($('#form1').valid()) {
            alert("form is valid");
        } else {
            alert("form is invalid");
        }
    });

});

演示:http : //jsfiddle.net/B5mVh/4/

但是,在您的原始代码中,按钮位于表单内部,因此如前所述,根本不需要click处理程序。但是,如果要在click事件上运行一些代码,请使用submitHandler(有效时)和invalidHandler(无效时)回调函数。

$(document).ready(function () {

    $('#form1').validate({  // <-- INITIALIZE plugin on your form
        // your rules & options,
        submitHandler: function(form) {
             alert("form is valid");
             return false;
        },
        invalidHandler: function() {
            alert("form is invalid");
        }
    });

});

演示:http : //jsfiddle.net/B5mVh/5/

当然,您不必使用这些可选的回调函数。如前所示,没有它们,该插件也可以正常工作:

演示:http : //jsfiddle.net/B5mVh/6/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery验证在单击按钮期间不起作用

来自分类Dev

在单击按钮验证时不起作用

来自分类Dev

jQuery的单击按钮不起作用

来自分类Dev

按钮单击JQuery不起作用

来自分类Dev

按钮单击在jQuery内部不起作用

来自分类Dev

jQuery的按钮单击不起作用

来自分类Dev

JQuery 按钮单击不起作用

来自分类Dev

HTML,javascript:按钮单击验证不起作用

来自分类Dev

单击然后取消单击 jquery 按钮不起作用

来自分类Dev

单击不起作用的按钮

来自分类Dev

在jQuery中单击时按钮不起作用

来自分类Dev

追加后jQuery按钮单击不起作用

来自分类Dev

为什么我的jQuery按钮在单击时不起作用?

来自分类Dev

jQuery开机自检按钮单击不起作用

来自分类Dev

jQuery在按钮上单击不起作用

来自分类Dev

单击按钮时 JQuery OnClick 不起作用

来自分类Dev

除非两次单击“提交”按钮,否则表单不提交且jQuery验证不起作用

来自分类Dev

jQuery单击不起作用

来自分类Dev

jQuery验证不起作用

来自分类Dev

jQuery验证不起作用

来自分类Dev

jQuery验证不起作用

来自分类Dev

jQuery验证不起作用?

来自分类Dev

jQuery验证不起作用

来自分类Dev

按钮单击不起作用。-安卓

来自分类Dev

单击时按钮不起作用

来自分类Dev

WPF按钮单击事件不起作用

来自分类Dev

PyQT按钮单击不起作用

来自分类Dev

剑道模板按钮单击不起作用

来自分类Dev

AngularJS按钮单击$ mdDialog不起作用