【问题标题】:Change event to check change on any form element更改事件以检查任何表单元素的更改
【发布时间】:2019-10-20 14:45:13
【问题描述】:

我有一个 from with disabled 按钮,当表单有效时它会被启用。使用下面的功能,我正在检查更改,如果表单仅包含输入,它就可以工作。如何检查选择或复选框等其他元素的更改?

$("#create-rule-form").parsley();
$('input').on('keyup', function() {
  $("#create-rule-form").parsley().validate();
  if ($("#create-rule-form").parsley().isValid()) {
    $('#create-rule-btn').prop('disabled', false);
  } else {
    $('#create-rule-btn').prop('disabled', 'disabled');
  }
});

【问题讨论】:

标签: javascript jquery parsley


【解决方案1】:

使用 jQuery 的 :input 选择器,它匹配所有用于表单输入的标签。

$(":input").on('edit change').function() {
  // code here
});

【讨论】:

  • 不错,但它是:input,而不是::input
  • 谢谢,只是一个错字。
【解决方案2】:

您可以使用$('form').find('*') 选择表单的所有子孙,然后将事件应用于所有子孙,如下所示。

另外,顺便说一句,我认为您应该处理的事件是 change 而不是 keyup,因为 keyup 不适用于复选框和下拉菜单。

$('form').find('*').on('change', function() {
  //do stuff
});

【讨论】:

  • 他们可能不是直系子女。
猜你喜欢
  • 1970-01-01
  • 2010-11-04
  • 2011-03-01
  • 2011-07-27
  • 1970-01-01
  • 2019-02-25
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
相关资源
最近更新 更多