4

AJAX 呼び出しから HTML を含む div をロードするために、ファイルに次のコードがあります。

$('#searchButton').click( function() {
    $('#inquiry').load('/search.php?pid=' + $('#searchValue').val());
});

これは Firefox と Google Chrome では問題なく動作しますが、IE で検索を行うたびに index.php にリダイレクトされます。Firebug から URL を取得し、それを IE に貼り付けましたが、リダイレクトは発生しません。返されるはずの出力を取得するだけです。

また、 $.get() リクエストと完全な $.ajax() リクエストに変更しようとしましたが、リダイレクトは同じです。

4

5 に答える 5

2

IE ではデフォルト イベントの処理が異なります (テキスト フィールドで Enter キーを押すことにも注意してください)。IE が原因で、デフォルトのイベント ハンドラーが起動します。searchButton が "" の HREF を持つリンクである場合、現在のページがリロードされます。href を "javascript:void(0)" に設定するか、次のようにしてみてください。

$('#searchButton').click( function(e) {
    $('#inquiry').load('/search.php?pid=' + $('#searchValue').val());
    e.preventDefault();
});
于 2008-10-07T15:12:33.460 に答える
1

もっと楽しく。入力テキストとボタンを次の形式でラップしています。

<form onSubmit="return false;">
[HTML]
</form>

IEはreturnfalseを無視しているようです。jQuery関数をSteveのように改造しようとしましたが、それでも不適切に更新されていました。

フォームタグを削除しましたが、それで問題ありませんでした。

于 2008-10-07T15:28:28.513 に答える
0

フォームのアクション属性を JavaScript 関数 (検索処理関数など) または "return false" に設定します。

Enterキーを押すとMSIEがフォームアクションを起動しています

于 2008-10-07T22:17:31.747 に答える
0

ボタンの送信アクションを防ぐために、関数は false を返す必要があります。ただし、jQueryがそれをどのように処理するかはわかりません。

于 2008-10-07T22:37:04.763 に答える
0

次の方法のようなデフォルトを防ぐ必要があります..

var searchbutton = $('#searchButton');
var inquirysearchvalue = $('#inquiry').load('/search.php?pid=' + $('#searchValue');

searchbutton.click( function(e) {
    inquirysearchvalue.val());
    e.preventDefault();
});
于 2014-05-29T08:56:57.523 に答える