我有一个表单,并且想要禁用/启用其提交按钮,具体取决于表单的输入文本字段是否为空或是否已输入文本。
我认为这意味着为输入文本字段'keydown
或keypress
事件设置事件处理程序:当它被触发时,此事件处理程序应测试输入文本字段是否包含文本,并启用或相应地禁用提交按钮。
change
事件看起来应该比keydown
或keypress
事件更有用,除非在相关控件丢失焦点之前不会触发事件,并且有什么好处:因为用户只想输入内容然后点击提交按钮,我想要一个事件处理程序,它被输入的文本触发,而不仅仅是当控件失去焦点时。
我的问题是:
keydown
和/或keypress
个事件?keydown
和/或keypress
事件是否可取消(您可以取消它们以防止输入相应的文字)吗?修改:仅供参考,jQuery validation plug-in重新测试表格的有效性。
答案 0 :(得分:1)
回答你的问题......
使用jQuery的示例:
$("#inputfield").live("keydown", function(){
return false;
});
如果您想在表单提交上测试某些输入值,可以使用jQuery submit()来完成。
$("#theform").submit(function() {
var formval = $("#theinput").val();
if(formval == "") { //or some better test
alert("input value"); //or some other alert...
return false;
} else {
return true;
}
});
返回false将使点击无效以提交表单。
修改强> 如果您在评论中说,您希望禁用表单提交,直到输入字段符合要求
$("#inputfield").live("keyup", function(){
if($("#inputfield").val() == "") {
$('#button').attr("disabled", true);
} else {
$('#button').attr("disabled", false);
}
});