HTML文本输入事件
我有一个表单,想禁用/启用它的提交按钮,这取决于表单的输入文本字段是空的还是输入了文本 我认为这意味着为输入文本字段的HTML文本输入事件,html,input,events,keypress,textinput,Html,Input,Events,Keypress,Textinput,我有一个表单,想禁用/启用它的提交按钮,这取决于表单的输入文本字段是空的还是输入了文本 我认为这意味着为输入文本字段的keydown或keypress事件设置一个事件处理程序:当它被触发时,该事件处理程序应该测试输入文本字段是否包含文本,并相应地启用或禁用提交按钮 change事件看起来应该比keydown或keypress事件更有用,只是在相关控件失去焦点之前它不会触发,这有什么好处:因为用户只想键入一些内容,然后单击submit按钮,我想要一个事件处理程序,它由输入的文本触发,而不仅仅是当控
keydown
或keypress
事件设置一个事件处理程序:当它被触发时,该事件处理程序应该测试输入文本字段是否包含文本,并相应地启用或禁用提交按钮
change
事件看起来应该比keydown
或keypress
事件更有用,只是在相关控件失去焦点之前它不会触发,这有什么好处:因为用户只想键入一些内容,然后单击submit按钮,我想要一个事件处理程序,它由输入的文本触发,而不仅仅是当控件失去焦点时
我的问题是:
- 在将相应文本插入输入文本字段之前或之后,是否触发了
和/或keydown
事件keypress
和/或keydown
事件是否可取消(您能否取消它们以防止输入相应的文本)keypress
编辑:仅供参考,重新测试表格的有效性。在回答您的问题时,
$("#inputfield").live("keydown", function(){
return false;
});
如果您想在表单提交上测试一些输入值,可以使用jQuery进行测试
返回false将使单击提交表单无效
编辑:
如果如您在评论中所述,您希望禁用表单提交,直到满足输入字段的要求
您希望使用“”事件处理程序允许首先发送文本。请参阅我的示例:回答您的问题
$("#inputfield").live("keydown", function(){
return false;
});
如果您想在表单提交上测试一些输入值,可以使用jQuery进行测试
返回false将使单击提交表单无效
编辑:
如果如您在评论中所述,您希望禁用表单提交,直到满足输入字段的要求
您希望使用“”事件处理程序允许首先发送文本。请参阅我的示例:如果它们在输入文本之前被激发,这是否会使它们对于我打算使用它们的目的(即测试输入字段是否包含文本)毫无用处?我还可以使用什么其他机制(根据输入字段是否包含文本来启用/禁用提交按钮)?您可以在提交时进行测试,以检查输入字段中是否有内容。这样做会比我希望的晚一点:至少在桌面应用程序中,启用/禁用对话框的“确定”是很常见的根据其是否有效/可单击,实时单击按钮。相反,您的意思是让按钮始终可点击(以便始终可以调用onsubmit),但要签入onsubmit(我想显示一条错误消息,说明需要一个字段)。我意识到这是在浏览器中实现的一种常见方式;我想知道这项技术(即可用事件的行为)是否支持另一个用户界面。确保在输入文本之前可以禁用它。(这将提供缺少某些内容的视觉线索。)只需在每个向下键上测试输入值并切换禁用属性:$('#target').attr(“disabled”,true);无论何时满足您对字段的要求。但您说过在输入文本之前触发keydown:因此,在keydown中测试输入字段是否包含文本为时尚早。如果在输入文本之前触发,这是否会使它们对我打算使用它们的目的毫无用处(这是为了测试输入字段是否包含文本)?我可以使用什么其他机制来代替(根据输入字段是否包含文本来启用/禁用提交按钮)?您可以在Submit上放置一个测试来检查输入字段中是否有内容。这样做会比我想要的晚一点:至少在桌面应用程序中,启用/禁用对话框的“OK”是很常见的根据按钮是否有效/是否可点击,实时显示按钮。您的意思是,让按钮始终可点击(以便始终可以调用onsubmit),但要在onsubmit上签入(我想显示一条错误消息,说明需要一个字段)。我意识到这是在浏览器中执行此操作的常见方法;我想知道该技术(即可用事件的行为)是否支持其他UI。确保在输入文本之前可以禁用它。(这将提供缺少某些内容的视觉线索。)只需在每个向下键上测试输入值并切换禁用的属性:$(“#target”).attr(“disabled”,true);只要满足您对该字段的要求。但是您说过在输入文本之前会触发keydown:因此,在keydown中进行测试还为时过早,无法知道输入字段是否包含文本。
$("#inputfield").live("keyup", function(){
if($("#inputfield").val() == "") {
$('#button').attr("disabled", true);
} else {
$('#button').attr("disabled", false);
}
});