我有一个 ASP.NET MVC 3 项目,其中包含一个带有 5 个文本输入框的表单,允许用户输入搜索条件。
目前,当用户从一个字段切换到下一个字段时,我有一个$('.watched').blur(ajaxSearch);
函数可以发出我的ajaxSearch
函数,这可以正常工作,排序...
我的问题是 ajaxSearch 每次都被调用,每次我通过字段进行选项卡,或单击.searchResults
结果 div 中显示的值之一。
我已将我当前的搜索 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();
});