sco*_*coe 2 javascript jquery asp.net-mvc-3
我有一个ASP.NET MVC 3项目,其中包含一个带有5个文本输入框的表单,允许用户输入搜索条件.
目前,当用户从一个字段切换到下一个字段时,我有一个$('.watched').blur(ajaxSearch);发布我的ajaxSearch功能的功能,这可以正常工作,排序......
我的问题是,每次我通过字段选项卡,或者点击.searchResults结果div中显示的其中一个值时,每次调用ajaxSearch .
我在问题的最后把我当前的搜索javascript.
我想将值存储在文本框中,然后在发出另一个ajax调用之前检查它们是否有更改.
Psuedocode的想法
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;
}
Run Code Online (Sandbox Code Playgroud)
我不确定如何实现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();
});
Run Code Online (Sandbox Code Playgroud)
而不是自己的功能.你不能使用这个change事件而不是blur事件.
$('.watched').change(ajaxSearch);
Run Code Online (Sandbox Code Playgroud)
仅当元素(input,textarea)的值更改然后模糊时才会发生更改事件.
更改事件在其值更改时发送到元素.此事件仅限于元素,框和元素.对于选择框,复选框和单选按钮,当用户使用鼠标进行选择时会立即触发事件,但对于其他元素类型(输入,textarea),事件将延迟到元素失去焦点.
| 归档时间: |
|
| 查看次数: |
239 次 |
| 最近记录: |