0

フォームタグ内にある入力フィールドを押してページを送信および更新するときに、入力ボタンが押されないようにしようとしています。代わりに、AJAX ファイルをロードしたいと考えています。これで、フォーム タグを削除した場合、これが機能し、タグも必要ないことがわかりましたe.preventDefault();。ここで何が欠けていますか?コードは以下です。

$('#input_field').bind('keyup', function(e) {
    if(e.keyCode==13){
        e.preventDefault();
            $('#insert_ajax_file').load('load_file.php');
    }
4

4 に答える 4

2

keyup イベントは、デフォルト イベントの後に発生します。キーダウンを使用する

$('#input_field').bind('keydown', function(e) {
    if(e.keyCode==13){
        e.preventDefault();
    }
});
于 2012-08-09T20:11:19.813 に答える
2

イベントオブジェクトを引数e.preventDefaultとして渡すように変更します。e

下記参照、

$('#input_field').bind('keyup', function(e) {
   if(e.keyCode==13){
      e.preventDefault(); //<== Changed to e
        $('#insert_ajax_file').load('load_file.php');
   }
   //..
 });
于 2012-08-09T20:02:49.683 に答える
1

'keyup'の代わりに'click'イベントにバインドします。

$('#input_field').bind('click', function(e) {
    e.preventDefault();
    // do whatever you want here
});

http://jsfiddle.net/rzkaN/

編集:申し訳ありませんが、あなたの質問を読み間違えました。

keypressその代わりに使用してくださいkeyuphttp://jsfiddle.net/rzkaN/1/

于 2012-08-09T20:08:01.880 に答える
0

関数で「e」を渡しますが、「イベント」で preventDefault を実行します

働く:

$('#input_field').bind('keyup', function(e) {
  if(e.keyCode==13){
    e.preventDefault();
    $('#insert_ajax_file').load('load_file.php');
  }
});
于 2012-08-09T20:04:11.020 に答える