重定向到特定的url基于用户输入,但如果没有预定义的关键字存在搜索网站
Redirect to specific url based on user input but if no pre-defined keyword exists search the site
好的,第二个问题,首先我要说的是,我对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
谢谢
Update:好的,所以问题只是你必须做一个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>
相关文章:
- 如何知道元素在屏幕上是否可见.如果没有,请滚动页面
- 可以转换显示属性吗?如果没有,什么'这是最好的解决方案
- 用户名输入如果其他块不能正常工作/Javascript-jQuery-AJAX
- 如果没有互联网连接,Android WebView离线消息
- 如果没有历史记录,我如何隐藏图像或按钮onclick=;历史.go(-1);
- 如果没有从下拉列表中选择任何值,则允许使用php、mysql、javascript将文本框添加到mysql表中
- 如果没有Ember中的控制器,我如何更改查询参数
- 如果没有添加PHP&Javascript
- 如果没有其他函数链接到promise,则默认行为
- 如何识别“;输入“;没有浏览器检测的事件
- 如果没有任何输入,如何启用按钮
- 如果没有其他用户会看到未转义的用户输入,渲染它是否安全
- jQuery-如果没有,则将更改事件附加到输入elemnt't已经存在
- 使用javascript onblur事件默认输入框为0.00,如果没有输入值或如果一个值小于0
- 重定向到特定的url基于用户输入,但如果没有预定义的关键字存在搜索网站
- 如果没有向数据库发送用户输入,是否存在注入风险?
- Select2 -拒绝清除输入字段,如果没有找到结果则禁用表单
- 我如何检查,看看如果表单输入(x5)没有留下空的用户,使用JavaScript/JQuery
- 如果没有输入,禁用搜索按钮,如果页面第一次加载,隐藏搜索表
- dom events -如果没有字段被聚焦,则在键盘输入时触发JavaScript