代码之家  ›  专栏  ›  技术社区  ›  ChrisW

HTML文本输入事件

  •  1
  • ChrisW  · 技术社区  · 15 年前

    我有一个表单,想禁用/启用它的提交按钮,这取决于表单的输入文本字段是空的还是输入了文本。

    我认为这意味着为输入文本字段的 keydown keypress

    change 事件看起来应该比 键盘按下 事件,除了在所讨论的控件失去焦点之前它不会被激发,这有什么好处:因为用户只想键入一些内容,然后单击submit按钮,所以我想要一个事件处理程序,它由输入的文本激发,而不仅仅是当控件失去焦点时。

    我的问题是:

    • 和/或 按键
    • 键盘按下 按键 可取消的事件(您是否可以取消它们以防止输入相应的文本)?

    编辑: jQuery validation plug-in 重新测试钥匙上的表格有效性。

    1 回复  |  直到 7 年前
        1
  •  1
  •   jjclarkson Andy Rose    15 年前

    在回答你的问题时。。。

    1. keydown或keypress事件可以 使用javascript
    2. 绑定后可以返回false 功能可通过按键向下或按键 事件这将阻止文本

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

    您想使用“ keyup “事件处理程序,以允许首先发送文本。参见我的示例: on jsbin