我对Javascript有点新鲜。我不知道我想要完成的名称,所以我希望你们都能指出我正确的方向。
我有一个下拉菜单如下:
<select name="PA" disabled="disabled">
<option value="0" selected="selected">
--
</option>
<option value="2">
Physical
</option>
<option value="1">
Special
</option>
<option value="3">
Status
</option>
</select>
根据我选择的内容,将2,1或3加载到公式中,并且工作正常。
但是,当用户选择三个选项之一时,我希望打开另一个站点上的URL。问题是,URL并不像site.com/1.html那么简单 - 相反,选择“物理”选项应该将2加载到上述公式中,我希望它在后台打开site.com/physical。
我意识到你不能将两个值设置为相同的选项,所以我的想法是一个函数,它使用数组将2转换为我想要的单词,然后将该单词加载到URL切换器中。
有人能指出我正确的方向吗?
答案 0 :(得分:1)
如果我理解你的要求,我认为你正在寻找你的选择框上的onchange属性。看看the on change attribute 您可以在触发事件时运行所需的任何javascript函数。
<select id="PA" name="PA" onchange="javascript:OpenUrl()">
然后在OpenUrl函数中,确定选择了哪个项目并打开相应的URL。
修改强>
您的Open Url功能如下所示..
function OpenUrl(){
var e = document.getElementById("PA");
var strValue = e.options[e.selectedIndex].value;
if (strValue == "1"){
// Open Appropiate Url
window.open ("http://www.myurl/special","mywindow");
}
else if (strValue == "2"){
window.open ("http://www.myurl/physical", "mywindow");
}
else if (strValue == "3"){
window.open ("http://www.myurl/status", "mywindow");
}
}
每个if / else if块都会打开自己的url。这样每个选项都可以打开自己的URL。你究竟打算如何打开网址?在我的示例中,我将展示如何在新窗口中打开URL。如果这不是你想要的,你将不得不改变每个if块内的代码。
答案 1 :(得分:1)
您可以使用字符串设置“select”元素的onchange属性。当用户在“select”元素中更改其选择时,您的Internet浏览器将通过其Javascript解释器运行它。
为了实现您的想法,您可以执行以下操作:
<script>
function openPopup(val) {
window.open("http://www.example.com/" + val);
}
</script>
<select name="PA" onchange="openPopup(this.options[this.selectedIndex])">
<option value="0" selected="selected">
--
</option>
<option value="1" >
Special
</option>
<option value="2">
Physical
</option>
<option value="3">
Status
</option>
</select>
重复一遍,“select”元素的onchange属性设置为字符串“openPopup(this.options [this.selectedIndex])”,当有人在drop中选择一个选项时,该字符串通过Javascript解释器下来。
答案 2 :(得分:0)
在你的js中
function loadWindow(){
var urls = ["Please select","http://myurl.com/special.htm", "http://myurl2.com/physical.htm", "http://myurl3.com/status.htm"];
var i = document.PA.selectedIndex
if (i>0){
window.open(urls[i]);
}
}
你的HTML中的
<select name="PA" onchange="loadWindow()">