【问题标题】:jquery validate onchangejquery 验证 onchange
【发布时间】:2013-06-04 09:54:48
【问题描述】:

我正在使用http://jqueryvalidation.org/ 插件。

它在按键时生效,但在更改时无效。 例如:

<input type="text" id="test1" value="" name="test1">
<input type="checkbox" id="test2" name="test2" value="1"> 

jQuery('#test2').change(function() {
jQuery('#test1').val('Test1'); });

如果我正在验证,请在 #test1 显示验证错误,但是当我单击复选框时,它不会隐藏。

我可以这样做:

jQuery('#test2').change(function() {
jQuery('#test1').val('Test1');
jQuery('#test1').valid(); });

它有效,但是如何在验证插件中实现 onchange 方法,以自动进行每个字段的 onchange 验证?不仅onkeyup,还有onchange?

【问题讨论】:

  • 'onchange: true' 会很好,但在这个插件中没有实现。那么,也许有人已经做了这个或有想法,如何实现这个方法?
  • .validate() 代码在哪里?验证规则在哪里?你真的想在这里做什么?为什么单击复选框时错误消息会消失?您是否希望test1 的规则依赖 test2 的选中状态?如果是这样,请详细解释这一点,以便我们帮助您实现它。
  • 不,插件没有onchange 选项。但是,它不是必需的,因为它通过 onkeyup 捕获文本字段的任何“更改”,onfocusout 捕获所有字段,onclick 捕获单选和复选框字段。
  • onkeyup+onfocusout+onclickonchangeonchange 实际上会检查值是否已更改,并且不会在每次单击、聚焦和按键时触发。它还可以通过右键单击菜单等进行粘贴。该插件肯定需要并且缺少它。

标签: jquery validation jquery-validate onchange


【解决方案1】:

开始使用“输入”事件而不是“更改”。

jQuery('#test2').on('input', function() {
    // do your stuff 
});

【讨论】:

  • 太棒了,谢谢
【解决方案2】:

试试

jQuery('#test2').on('click',function() {
    $(this).validate({
       // your code here
    });
});

阅读jQuery Validator -- only validate onblur event (not onchange)

【讨论】:

  • 是的,我的示例以同样的方式工作。但我不想为每个领域都声明这一点。我需要用这个插件自动完成。
  • .validate()INITIALIZE 插件的方法。它不是“测试”表单有效性的方法。请参阅.valid() 方法。阅读此内容以获得启发:stackoverflow.com/a/14858168/594235
猜你喜欢
  • 1970-01-01
  • 2021-01-11
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
相关资源
最近更新 更多