【问题标题】:how to enable the submit button only when an element in the form has changed仅当表单中的元素发生更改时如何启用提交按钮
【发布时间】:2013-03-17 17:26:24
【问题描述】:

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

$(':input[type!="submit"]', form.get(0)).live ('change', function (e) {
    form.find (':submit').removeAttr ('disabled');
});

这很完美,但是,当用户将元素更改回其原始状态时,提交按钮仍然处于启用状态:

例子:

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

【问题讨论】:

  • 也许你想说if($(this).val != '')就像this question一样?
  • live() 已弃用。请改用on()

标签: jquery html forms


【解决方案1】:

试试这个:

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

jsFiddle example

根据您对.live() 的使用,我正在使用.on() 的事件委托。

【讨论】:

  • 另外六个复选框和六个相关的提交按钮?
  • 没有一个提交按钮。请在 jsfiddle jsfiddle.net/3VB3C/1 上检查此更新,在三个复选框中,两个被选中以开始一个,一个不是。行为不是预期的。
  • 我没有关注你希望新小提琴如何运作。根据三个复选框启用/禁用按钮的标准是什么?
  • 所以三个复选框。第一个未选中,其他两个已选中。当用户选中未选中的复选框时,则未启用提交按钮(问题)。当未选中相同的复选框(原始状态)时,提交按钮被启用(问题,因为现在它应该被禁用,因为那是原始状态)。标准是仅当表单中复选框的状态从其原始状态更改时才启用提交按钮
猜你喜欢
  • 2013-01-02
  • 2018-10-08
  • 1970-01-01
  • 2018-02-19
  • 2014-03-18
  • 2011-12-02
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多