わかりましたので、私は理解できない本当に奇妙な問題を抱えています。私はこのjqueryコードを手に入れました:
HTML コード
<form>
<input type="text" value="Search for a product" id="name" size="50">
<input type="submit" id="submit" value="Search">
</form>
JavaScript コード
$("#loader").hide();
$(document).ready(function() {
$('#submit').live('click', function(event){
$("#loader").ajaxStart(function(){
$(this).show();
});
$("#loader").ajaxStop(function(){
$(this).hide();
});
$('.product').remove();
var query = $("#name").val();
var searchQuery = query.replace(/ /g,"+");
$.get("APIsearch.php", {keyword: searchQuery}, function(data){
$("#content").html(data);
});
});
});
ところで #loader は、ajax 呼び出し中に表示される単なる読み込み gif です。
ID「submit」のボタンをクリックすると、ID「name」のテキストフィールドから文字列が送信され、単語の間にスペースがある場所に + が挿入され、その文字列が APIsearch.php ページに送信されます。ここで、「contetn」divに読み込まれるいくつかのものを取得します。問題は、「入力」フィールドの周りに「フォーム」要素を追加すると、ajaxt が何も返さず、代わりに .submit を使い始めたいので、入力ボタンをテキストを提出することを選択します。このような「フォーム」要素を削除した場合にのみ機能するのはなぜですか?
<input type="text" value="Search for a product" id="name" size="50">
<input type="submit" id="submit" value="Search">