Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML文本输入事件_Html_Input_Events_Keypress_Textinput - Fatal编程技术网

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
    事件是否可取消(您能否取消它们以防止输入相应的文本)


编辑:仅供参考,重新测试表格的有效性。在回答您的问题时,

  • keydown或keypress事件可以 在输入文本之前被截取 使用javascript
  • 绑定后可以返回false 功能可通过按键向下或按键 事件这将阻止文本 从被输入
  • 使用jQuery的示例:

    $("#inputfield").live("keydown", function(){
        return false;
    });
    
    如果您想在表单提交上测试一些输入值,可以使用jQuery进行测试

    返回false将使单击提交表单无效

    编辑: 如果如您在评论中所述,您希望禁用表单提交,直到满足输入字段的要求


    您希望使用“”事件处理程序允许首先发送文本。请参阅我的示例:

    回答您的问题

  • keydown或keypress事件可以 在输入文本之前被截取 使用javascript
  • 绑定后可以返回false 功能可通过按键向下或按键 事件这将阻止文本 从被输入
  • 使用jQuery的示例:

    $("#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); 
        }
    });