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



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

$("#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('*')选择表单的所有子项和孙项,然后将事件应用于所有这些子项,如下所示。

另外,附带说明一下,我相信您应该处理的事件是change而不是keyup,因为keyup不适用于复选框和下拉列表。

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

最新更新