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 アクションを表すようにすることです。送信入力は、選択したオプションの (target="_blank" のような新しいタブで) URL にアクセスするアクションを実行します。

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

選択したオプションを送信入力のアクションとして設定するために、何らかのプログラミングが必要かどうかはわかりません。

4

3 に答える 3

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 に答える
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

このように - select に ID を与え、これを head に追加します。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 を付与し、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 に答える