好吧,第二个问题,让我首先说我还不知道javascript,我使用的所有东西都是从这里到那里剪切和粘贴的,所以对我来说很简单:-p。
我有一个客户想要设置搜索框,如果有人输入某个预先定义的关键字,则会转到特定页面。我从这里抓住了这段代码来完成那部分:
<form id='formName' name='formName' onsubmit='redirect();return false;'>
<input type='text' id='userInput' name='userInput' value=''>
<input type='submit' name='submit' value='Submit'>
</form>
<script type='text/javascript'>
function redirect() {
var input = document.getElementById('userInput').value.toLowerCase();
switch(input) {
case 'keyword1':
window.location.replace('page1.html');
break;
case 'keyword2':
window.location.replace('page2.html');
break;
default:
window.location.replace('error.html');
break;
}
}
</script>
现在我也在使用sphider php搜索脚本,我使用这个嵌入式表单:
<form action="search/search.php" method="get">
<input type="text" name="query" id="query" value="SEARCH" columns="2"
autocomplete="off" delay="1500"
onfocus="if(this.value==this.defaultValue)this.value=''"
onblur="if(this.value=='')this.value=this.defaultValue" >
<input type="submit" value="" id="submit">
<input type="hidden" name="search" value="1">
</form>
有什么方法可以将两者结合起来,这样如果他们搜索预定义的关键字,他们会被定向到正确的页面,但如果他们的搜索不包含预定义的关键字,那么它会用sphider搜索吗?
对不起,如果这个问题很荒谬,就像我说的那样,我是新人:-p
由于
答案 0 :(得分:1)
更新:好的,问题只是您必须执行return redirect();
以确保错误返回正确。我在这里做了一个小提琴:http://jsfiddle.net/3UbLa/1/
我对sphider搜索一无所知,但是从你发布的内容中你应该能够将两者结合起来,如下所示:
你的JS会改变如下:
<script type='text/javascript'>
function redirect() {
//look for text inside the NEW textbox
var input = document.getElementById('query').value.toLowerCase();
switch(input) {
case 'keyword1':
//put this to see if this code runs
//alert("Test");// UNCOMMENT THIS
window.location.replace('page1.html');
break;
case 'keyword2':
window.location.replace('page2.html');
break;
default://no keyword detected so we submit the form.
return true;
break;
}
return false;//don't let the form submit
}
</script>
您的HTML将更改为:
<form action="search/search.php" method="get"
onsubmit='return redirect();'>
<!-- pretty much the same thing except you remove the return false !-->
<input type="text" name="query" id="query" value="SEARCH" columns="2"
autocomplete="off" delay="1500"
onfocus="if(this.value==this.defaultValue)this.value=''"
onblur="if(this.value=='')this.value=this.defaultValue" >
<input type="submit" value="" id="submit">
<input type="hidden" name="search" value="1">
</form>