Jquery 如何仅在表单中的元素发生更改时启用“提交”按钮

Jquery 如何仅在表单中的元素发生更改时启用“提交”按钮,jquery,html,forms,Jquery,Html,Forms,我已经用下面的代码实现了这一点: $(':input[type!="submit"]', form.get(0)).live ('change', function (e) { form.find (':submit').removeAttr ('disabled'); }); 但是,当用户将元素更改回其原始状态时,submit按钮仍然处于启用状态: 例如: 最初表单选中了复选框-提交按钮将被禁用 用户取消选中复选框-将启用提交按钮 用户再次选中复选框(返回原始状态)-提交按钮仍处于

我已经用下面的代码实现了这一点:

$(':input[type!="submit"]', form.get(0)).live ('change', function (e) {
    form.find (':submit').removeAttr ('disabled');
});
但是,当用户将元素更改回其原始状态时,submit按钮仍然处于启用状态:

例如:

  • 最初表单选中了复选框-提交按钮将被禁用
  • 用户取消选中复选框-将启用提交按钮
  • 用户再次选中复选框(返回原始状态)-提交按钮仍处于启用状态(我希望再次禁用)
试试这个:

$(document).on('change', 'input[name=cb1]', function () {
    $('input[type=submit]').prop('disabled', $(this).is(':checked'));
});


我使用的是
.on()
的事件委派,基于您对
.live()

的使用,也许您想说
如果($(this).val!='')
中的
被弃用。改为使用()上的
。还有六个复选框和六个相关的提交按钮?没有一个提交按钮。请在三个复选框中选中JSFIDLE上的此更新,其中两个复选框被选中开始一个复选框,另一个复选框未选中。这种行为不是预期的。我不明白你想让那把新小提琴如何工作。根据三个复选框启用/禁用按钮的标准是什么?三个复选框中的一个。第一个未选中,其他两个已选中。当用户选中未选中复选框时,则未启用“提交”按钮(问题)。如果取消选中此复选框(原始状态),则会启用“提交”按钮(问题,因为现在应该禁用它,因为这是原始状态)。条件是,仅当表单中复选框的状态从其原始状态更改时,才启用“提交”按钮