-1

我在我的 .Net 应用程序中使用 jquery 验证插件,并且有许多组必须在我的页面中进行验证。我正在使用验证组

$("#aspnetForm").validate().element("#elementname");

现在的问题是,我有许多服务器端按钮在应用程序中是必需的,其中一些启用了 ajax,而另一些则正常。当我单击页面中的任何按钮时,它正在验证页面中的所有元素,我想克服这个问题。我知道,通过添加“取消”类,我们可以跳过验证,但在我的情况下这还不够。例如,我有一个可以刷新多次的验证码刷新按钮,在这种情况下,验证只被跳过一次,在随后的点击中,它再次触发验证。

请帮助我从按钮中删除所有验证触发器或仅在具有某些类的特定按钮上触发验证,而不是向不需要的按钮添加取消类。

4

1 回答 1

0

jQuery Validate 插件将自动捕获包含在标签click中的任何按钮的事件。阻止这种情况的唯一方法是不使用带有.type="submit"<form>type="submit"

<form>
    ....
    <button type="submit">button</button>
    <input type="submit" />
</form>

默认行为演示:http: //jsfiddle.net/EhGQ5/


或者,您可以将按钮更改为type="button",然后手动捕获click特定按钮的。然后,您可以使用.valid()方法手动触发验证。在这个例子中,只有第二个按钮会触发验证。

<form>
    ....
    <button type="button">button</button>
    <input type="button" value="button" id="submit" />
</form>

jQuery:

$(document).ready(function() {

    // this initialization may happen automatically within your framework
    $('#myform').validation({  // normal initialization
        // rules & options
    });

    // manually trigger a validation test using a specific button
    $('#submit').on('click', function() {
        $('#myform').valid();  // trigger form validation test
    });

});

手动触发验证的演示:http: //jsfiddle.net/EhGQ5/2/

于 2013-11-14T16:22:28.153 回答