0

我正在尝试编写如下选项菜单:

<form>
  <select>
   <option value="1">1</option>
   <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
  </select>
 <input type="submit" value="Submit">
</form>

我想要做的是让每个选项代表一个特定的 URL 操作,并且提交输入将执行访问所选选项的 URL(在新选项卡中,如 target="_blank")的操作。

1 = http://one.example.net
2 = http://two.example.net
3 = http://three.example.net
4 = http://four.example.net

我不知道是否需要任何类型的编程来将所选选项设置为提交输入的操作。

4

3 回答 3

0

像这样 - 给选择一个 ID 并将其添加到头部。无需对 html 进行其他更改

var URLs = ["",
  "http://one.example.net",
  "http://two.example.net",
  "http://three.example.net",
  "http://four.example.net"
]
window.onload=function() {
  document.getElementById("select1").onchange=function() {
    var URL = URLs[this.selectedIdex];
    if (URL) location=URL;       
  }
}

或者像这样,因为你想要一个新标签 - 浏览器喜欢点击打开新窗口

给表单一个 ID 并添加target="_blank"到它

window.onload=function() {
  document.getElementById("form1").onsubmit=function() {
    var URL = URLs[this.selectedIdex];
    if (URL) {
      this.action=URL;      
      return true;
    }
    return false;// don't submit  
  }
}

要在 php 中执行此操作,请提交具有 target="_blank" 的表单并将数组放在服务器上并执行

header("location:".$urls[$_GET["select"]]);
于 2013-04-23T20:55:17.237 回答
0
<head>
  <script>
    var urls = [
      /* [0] */ 'http://one.example.net',
      /* [1] */ 'http://two.example.net',
      /* [2] */ 'http://three.example.net',
      /* [3] */'http://four.example.net'
    ];
    function goToURL(s){
      // get selected index and subtract one to get the array's index
      var index = parseInt(s.options[s.selectedIndex].value, 10) - 1; 

      // verify a url exists for th eoption, and if so navigate to it
      urls[index] && window.location = urls[index];
    }
  </script>
</head>

然后添加onchange="goToURL(this);"<select>标签中。

快速而肮脏的例子:http: //jsfiddle.net/Vfamc/

于 2013-04-23T20:52:44.620 回答
0

你可以用 jQuery 来做到这一点......

$("form").submit(function () {
    var selectVal = $('select').val();
    var url = '';
    if(selectVal == 1) url = 'http://one.example.net';
    else if(selectVal == 2) url = 'http://two.example.net';
    else if(selectVal == 3) url = 'http://three.example.net';
    else if(selectVal == 4) url = 'http://four.example.net';

    if(url != '')
    {
        window.open(url, '_blank');
    }
}); 

小提琴:http: //jsfiddle.net/3cWQP/

于 2013-04-23T20:53:19.110 回答