我有一个jQuery搜索脚本,它使用标签让用户定义他们想要使用的搜索类型。但是,当用户搜索某些内容然后选择新的搜索类型(点击标签页)时,他们必须转到文本框并按Enter键再次提交查询。
我想在用户点击他们选择的标签时调用搜索,而无需重新提交查询。我该怎么做?我希望你能理解我想要描述的内容。
我目前的jQuery代码是:
$(document).ready(function(){
$("[id^=t_]").click(function(){
t=this.id.replace("t_","");
$("[id^=t_]").removeClass("s");
$("#t_"+t).addClass("s");
return false
});
$("#t_search").click();
$("form").submit(function(event){
event.preventDefault();
if($("#s").val().length>0){
q=$("#s").val();
$.ajax({
type:"GET",
url:""+t+".php?q="+q,
dataType:"html",
success:function(c){
$("#r").html(c);
$("#r").show()
}
});
}
});
});
我目前的HTML代码是:
<div id="n">
<a href="/" id="t_search" class="s">All</a>
<a href="/images" id="t_images">Images</a>
<a href="/videos" id="t_videos">Videos</a>
<a href="/news" id="t_news">News</a>
</div>
<form action="search" method="get">
<input type="text" id="s" name="q" maxlength="2048" autocomplete="off">
</form>
<div id="r"></div>
答案 0 :(得分:0)
更改标签时提交表单:
$("[id^=t_]").click(function(){
t=this.id.replace("t_","");
$("[id^=t_]").removeClass("s");
$("#t_"+t).addClass("s");
if ($("#s").val()!="") { // only when there's a search term
$("form").submit();
}
return false
});
答案 1 :(得分:0)
尝试这样的事情......
你已经完成了一半的任务。
$(document).ready(function(){
$("[id^=t_]").click(function(){
t=this.id.replace("t_","");
$("[id^=t_]").removeClass("s");
$("#t_"+t).addClass("s");
q=$("#s").val();
if($("#s").val().length>0){
q=$("#s").val();
$.ajax({
type:"GET",
url:""+t+".php?q="+q,
dataType:"html",
success:function(c){
$("#r").html(c);
$("#r").show()
}
});
}
return false
});
});