0

好的,所以这是“如何在输入文本时动态启用/禁用按钮......”的常见问题的变体。因为这样做的常见且简单的方法是使用 jQuery 创建一个 Focus/Blur 函数,附加到 Blur 你的函数以检查当用户模糊(点击远离)输入字段时,相同的值是否为空白(并因此恢复为默认值),因此该按钮必须保持禁用状态。

但是,正如我在标题中强调的那样,我希望动态检查输入字段的状态以进行更改,以便启用或禁用按钮,而无需用户单击离开输入字段。

通常填写表单上的输入字段或最后一个输入字段,然后单击提交。当处理提交的启用/禁用的责任落在模糊功能上时,用户无法填写输入并立即单击提交而不保持禁用状态。普通用户会认为有问题;更有经验的用户可能会尝试点击离开(从而使用模糊功能),但我相信我们都同意这是不切实际的,更不用说优雅了。

我个人认为处理启用/禁用的单独函数要优雅得多。另外,我不确定它是否真的能解决这个问题。所以我最终尝试了

    $('input#name').change(function () {
      if (this.value.length > 0 && this.value !== default_value) {
        $('button#submit').removeProp('disabled')
      } else {
        $('button#submit').prop('disabled', 'true');
      }
    });

它工作得很好,但就像 Focus/Blur 函数一样:jQuery 将字段中的“变化”理解为基本上相同的聚焦和模糊。所以,回到第一方。

有没有人知道如何解决这个特定问题?

4

1 回答 1

0

keyup 或 keydown 怎么样?

$('input#name').keyup(function () {
  if (this.value.length > 0 && this.value !== default_value) {
    $('button#submit').removeProp('disabled')
  } else {
    $('button#submit').prop('disabled', 'true');
  }
});
于 2013-05-28T17:53:59.097 回答