轨道3和x2B;jquery在文本字段更改时启用提交按钮

轨道3和x2B;jquery在文本字段更改时启用提交按钮,jquery,forms,Jquery,Forms,我有一个简单的表单,有一个文本字段和一个提交按钮。单击submit后,我发出一个ajax请求,返回一些要执行的jquery。在这个jquery中,我禁用表单的submit按钮,并在文本字段更改时启用该按钮。以下是我正在使用的代码: $("#my_form input[type=submit]").attr("disabled","true"); $("#my_form #my_form_text").change(function() { $("#my_form input[type=sub

我有一个简单的表单,有一个文本字段和一个提交按钮。单击submit后,我发出一个ajax请求,返回一些要执行的jquery。在这个jquery中,我禁用表单的submit按钮,并在文本字段更改时启用该按钮。以下是我正在使用的代码:

$("#my_form input[type=submit]").attr("disabled","true");
$("#my_form #my_form_text").change(function()
{
  $("#my_form input[type=submit]").removeAttr("disabled");
});
问题是,我希望在更改文本字段后立即启用submit按钮。更改文本字段并将光标移出文本字段后,“提交”按钮将启用。是否有一种方法可以在我修改文本字段时(即使光标仍在文本字段中)立即启用submit按钮


谢谢。

将文本字段绑定到keyup事件。每次按下一个键,你就会知道文本在变化


您可能想看看jQuery的
keyup
方法:

在事件处理程序中,检查是否有任何实际输入是由于
keyup
事件造成的,而不是用户只按下了delete键

不过要小心:用户仍然可以使用鼠标复制和粘贴文本,这两个事件都不会触发

这适用于我现在能想到的所有情况:

var changeHandler = function (e) {
  if (this.value) $("input[type=submit]").removeAttr("disabled");
};
$("input[type=text]").keyup(
  changeHandler
).change(
  changeHandler
).mousemove(
  changeHandler
);
见:

var changeHandler = function (e) {
  if (this.value) $("input[type=submit]").removeAttr("disabled");
};
$("input[type=text]").keyup(
  changeHandler
).change(
  changeHandler
).mousemove(
  changeHandler
);