【问题标题】:Why input value can not be changed when pressing escape为什么按转义键时输入值不能更改
【发布时间】:2010-11-18 05:37:15
【问题描述】:

我有一个捕获图像名称的输入(外部表单)。用户应填写新名称并按 Enter。 Ajax 回调重命名图像。这行得通。

我想添加在用户按下转义键时“重置”输入内容的功能 (#27)。但我无法用我的值填充输入的值。

代码是

<input id="escapeInput" value="this is test" /> <input type="button" id="setDetaultToEscapeInput" value="Set default" />

jQuery(document).ready(function() {
    jQuery("#escapeInput").keydown(function(evt) {
        if (evt.keyCode == 27) {
            var input = jQuery(this);
            input.val('some default value') // doesn't work
            input[0].value = 'some default value 2'; // doesn't work
            input.parent().append('changed');
        }
    });
    jQuery("#setDetaultToEscapeInput").click(function() {
        var input = jQuery("#escapeInput");
        input.val('some default value') // works ok
    });
});

有趣的是,如果我测试例如对于“A”字符( if (evt.keyCode == 65)),代码有效。 知道如何处理吗?不只在FF下有效(Opera和IE8都可以)。

【问题讨论】:

    标签: javascript jquery input reset


    【解决方案1】:

    尝试使用 keyup 事件。

    $(function() {
        $("#escapeInput").keyup(function(e) {
            if (e.keyCode == 27) {
                $(this).val("some default value");
            }
        });
    });
    

    【讨论】:

      【解决方案2】:

      试试这个

      $(document).ready(function () {
          $("#escapeInput").keypress(function (evt) {
              var keycode = null;
              if (evt.keyCode) {
                  keycode = evt.keyCode;
              } else {
                  keycode = evt.which;
              }
              if (keycode == 27) {
                  $(this).val("some default value");
              }
          });
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-02
        • 1970-01-01
        • 1970-01-01
        • 2012-06-13
        • 1970-01-01
        • 2020-02-01
        • 1970-01-01
        • 2018-07-19
        相关资源
        最近更新 更多