rails 3 + jquery启用文本字段更改时的提交按钮

时间:2011-07-08 12:48:13

标签: jquery forms

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

$("#my_form input[type=submit]").attr("disabled","true");
$("#my_form #my_form_text").change(function()
{
  $("#my_form input[type=submit]").removeAttr("disabled");
});

问题是我希望在更改文本字段后立即启用提交按钮。更改文本字段并将光标移出文本字段后,将启用提交按钮。一旦我在文本字段中进行修改(即使我的光标仍然在文本字段中),是否有一种方法可以启用提交按钮?

感谢。

2 个答案:

答案 0 :(得分:1)

将文本字段绑定到keyup事件。每按一次键,您就会知道文本正在改变。

http://api.jquery.com/keyup/

$('textfield').keyup(function() {
   alert('text changed');
});

答案 1 :(得分:0)

您可能想看一下jQuery的keyup方法:http://api.jquery.com/keyup/

在事件处理程序中,检查keyup事件是否存在任何实际输入,而不是用户仅按下删除键。

小心:用户可能仍然使用鼠标复制和粘贴文本,并且两个事件都不会触发。

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

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

请参阅:http://jsfiddle.net/E86T9/