更改事件以检查任何表单元素的更改

Change event to check change on any form element

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

$("#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');
  }
});

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

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

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

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

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