2009-08-10 70 views
1

我有一個輸入(外部表單)來捕獲圖像的名稱。用戶應填寫一個新名稱並按回車鍵。 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'字符(如果(evt.keyCode == 65)),代碼有效。 任何想法如何處理它?它不適用於FF(Opera和IE8都可以)。

回答

2

請嘗試使用keyup事件。

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

很容易改變,它工作,THX! – stej 2009-08-10 10:48:08

0

試試這個

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