0

テキストボックスからページポストバックを無効化または削除するにはどうすればよいですか?

テキストボックスでEnterキーを押すと、ページがポストバックされました。ajax関数でデータを保存するボタンがあります。

<form name="test" class="form panel" id="test" method="post">
  <input type="text" name="user" />
  <input type="button" name="save" value="save" onclick="save()"/>
</form>

保存機能は正常に機能していますが、問題はテキストボックスです。

4

4 に答える 4

2

AJAX フォームの場合は、フォームが送信されないようにします。

<form ... onsubmit="return false;">
于 2013-02-07T08:55:26.083 に答える
0

あなたの唯一のアイデアがテキストボックスの入力イベントを防ぐことである場合、これはうまくいく可能性があります:

<form name="test" class="form panel" id="test" method="post">
<input type="text" name="user" onkeydown="if (event.keyCode == 13) event.preventDefault();"/>
<input type="button" name="save" value="save" onclick="save()"/>
</form>
于 2013-02-07T08:58:38.173 に答える
0

テキスト ボックスで Enter キーを押すことは、フォームの通常の動作であり、テキスト ボックスで Enter キーを押して何も起こらなかったことに気付くと、ユーザーは混乱する可能性があります。

次のスクリプトで送信を防ぐことができます

<form onsubmit="return okToSubmit;"...

var okToSubmit=false;
function save(){
// ... your code
  okToSubmit=true;
// form.submit();
}
于 2013-02-07T08:56:58.003 に答える
0

あなたは簡単に行うことができます

HTML ソリューション

<form onsubmit="return false;">

JS ソリューション

フォームで keypress ハンドラーを定義できます。

document.querySelector('form').onkeypress = checkEnter; 

function checkEnter(e){
 e = e || event;
 var txtArea = /textarea/i.test((e.target || e.srcElement).tagName);
 return txtArea || (e.keyCode || e.which || e.charCode || 0) !== 13;
}

jQuery ソリューション

$(document).ready(function() {
  $(window).keydown(function(event){
    if(event.keyCode == 13) {
      event.preventDefault();
      return false;
    }
  });
});
于 2013-02-07T08:54:41.880 に答える