1つのページに2つのajax呼び出しがあります。検索または結果を返すためのテキスト入力があります。
ページにはいくつかの非ajax入力があり、ajaxテキスト入力はこの中にあります。Enterキーを押すたびに、ajax呼び出しを返すために、フォームが送信され、ページが早まって更新されます。これらの入力でEnterキーが押されたときに、ajaxがフォームを送信しないようにするにはどうすればよいですか?結果が出るはずです。
ただし、ユーザーが別のフィールドにタブで移動してもajaxを実行する必要があるため、jqueryキーを押すことはできません。基本的に、ユーザーがajaxの結果を取得する前に、ページでフォーム全体を送信しないようにするためにこれが必要です。return falseを読んだ場合、これは修正されますが、修正されていません。
これがjavascriptです:
<script type="text/javascript">
$(function() {
$("[id^='product-search']").change(function() {
var myClass = $(this).attr("class");
// getting the value that user typed
var searchString = $("#product-search" + myClass).val();
// forming the queryString
var data = 'productSearch='+ searchString + '&formID=' + myClass;
// if searchString is not empty
if(searchString) {
// ajax call
$.ajax({
type: "POST",
url: "<?php echo $path ?>ajax/product_search.php",
data: data,
beforeSend: function(html) { // this happens before actual call
$("#results" + myClass).html('');
$("#searchresults" + myClass).show();
$(".word").html(searchString);
},
success: function(html){ // this happens after we get results
$("#results" + myClass).show();
$("#results" + myClass).append(html);
}
});
}
return false;
});
$("[id^='inventory-ESN-']").change(function() {
var arr = [<?php
$j = 1;
foreach($checkESNArray as $value){
echo "'$value'";
if(count($checkESNArray) != $j)
echo ", ";
$j++;
}
?>];
var carrier = $(this).attr("class");
var idVersion = $(this).attr("id");
if($.inArray(carrier,arr) > -1) {
// getting the value that user typed
var checkESN = $("#inventory-ESN-" + idVersion).val();
// forming the queryString
var data = 'checkESN='+ checkESN + '&carrier=' + carrier;
// if checkESN is not empty
if(checkESN) {
// ajax call
$.ajax({
type: "POST",
url: "<?php echo $path ?>ajax/checkESN.php",
data: data,
beforeSend: function(html) { // this happens before actual call
$("#esnResults" + idVersion).html('');
},
success: function(html){ // this happens after we get results
$("#esnResults" + idVersion).show();
$("#esnResults" + idVersion).append(html);
}
});
}
}
return false;
});
});
</script>