ユーザーが検索条件を入力できるようにするための5つのテキスト入力ボックスを備えたフォームを備えたASP.NETMVC3プロジェクトがあります。
現在、ユーザーが1つのフィールドから次のフィールドにタブ移動すると、$('.watched').blur(ajaxSearch);
関数を発行する関数がajaxSearch
あり、これは問題なく機能します。
.searchResults
私の問題は、フィールドをタブで移動するか、結果divに表示される値の1つをクリックするたびに、ajaxSearchが呼び出されることです。
質問の最後に現在の検索JavaScriptを配置しました。
値をテキストボックスに保存し、変更がないか確認してから、別のajax呼び出しを発行したいと思います。
擬似コードのアイデア
var oldvalues = {}
function saveCurrentValues() {
foreach( input box on the form ) {
save the currentvalue of the input box into oldvalues['inputboxid']
}
}
function isNewSearch() {
foreach( input box on the form ) {
if (oldvalues['inputbox.id'] !== input box value) {
return true;
}
}
return false;
}
foreachとoldvaluesの割り当てを実装する方法がわかりません。javascriptの第一人者が、この実装の正しい方向を教えてくれませんか。(以下のjavascriptにコメント行を入れましたが、この実装で実際に作業を行う必要があると思います。)
javascript
function displayResults(data) {
$('.searchResults').html(data);
}
function ajaxSearch() {
// if (isNewSearch() ) {
// saveCurrentValues();
$('#selectedRecord').empty();
var myForm = $('#searchForm');
$.post(myForm.URL, myForm.serialize(), displayResults);
//}
}
$(function () {
$('.watched').blur(ajaxSearch);
//saveCurrentValues();
});