2009-08-10 19 views
1

画像の名前を取得するための入力(外部形式)があります。ユーザーは新しい名前を入力して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はOKです)。

答えて

2

代わりにkeyupイベントを使用してみてください。

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

変更することが非常に簡単で、それは動作しますが、THXをお試しください! – stej

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"); 
       } 
      }); 
     }); 
関連する問題