好吧,我有以下jQuery:
$("input#search").live("keyup", function(e) {
// Set Timeout
clearTimeout($.data(this, 'timer'));
// Set Search String
var search_string = $(this).val();
// Do Search
if (search_string == '') {
$("ul#results").hide();
$('h4#results-text').hide();
}else{
$("ul#results").show();
$('h4#results-text').show();
$(this).data('timer', setTimeout(search, 100));
};
});
$("select#search2").change(function(e) {
// Set Timeout
clearTimeout($.data(this, 'timer'));
// Set Search String
var search_string = $("select#search2 option:selected").text();
// Do Search
if (search_string == '') {
$("ul#results").hide();
$('h4#results-text').hide();
}else{
$("ul#results").show();
$('h4#results-text').show();
$(this).data('timer', setTimeout(search2, 100));
};
});
现在我显然有一个普通的文本输入和一个选择,它们会触发不同的功能。输入运行良好,Ajax执行得很好。现在选择.change的工作正常,直到今天。我不知道我改变了什么,但它没有用。
我给我的选项用标签(选项值=“”)标记他们自己的值,并且选择正确命名并具有唯一ID。
我不知道出了什么问题。这些或Ajax请求有什么问题吗?
function search() {
var query_value = $('input#search').val();
$('b#search-string').html(query_value);
if(query_value !== ''){
$.ajax({
type: "POST",
url: "url...",
data: { query: query_value },
cache: false,
success: function(html){
$("ul#results").html(html);
}
});
}return false;
}
function search2() {
var query_value = $("select#search2 option:selected").text();
$('b#search-string').html(query_value);
if(query_value !== ''){
$.ajax({
type: "POST",
url: "url...",
data: { query: query_value },
cache: false,
success: function(html){
$("ul#results").html(html);
}
});
}return false;
}