1

ユーザーを選択したURLにプッシュするプルダウンメニューを作成しています。リストには、リストのヘッダーに使用する0に設定されたいくつかの値があります。何もしないように0に設定しました。

これは、値が0であるリストの最初のものに対して機能しますが、値が0である他のものは、ブラウザーを同じドメインと最後に/ 0を持つ新しいWebサイトにリダイレクトしますか?私は何が欠けていますか?

<select onchange="if (this.selectedIndex > 0) document.location.href=this.value;">
<option value="0" selected="selected">More...</option>
<option value="0">----- Locations  -----</option>
<option value="http://www.location1.com/">location1</option>
<option value="http://www.location2.com/">location2</option>
<option value="http://www.location3.com/">location3</option>
<option value="0">----- Other Locations  -----</option>
<option value="http://www.olocation1.com/">olocation1</option>
<option value="http://www.olocation2.com/">olocation2</option>
<option value="http://www.olocation3.com/">olocation3</option>
</select>
4

2 に答える 2

4

コードを次のように変更します。

<select onchange="if (this[this.selectedIndex].value !== '0') document.location.href=this.value;">
<option value="0" selected="selected">More...</option>
<option value="0">----- Locations  -----</option>
<option value="http://www.location1.com/">location1</option>
<option value="http://www.location2.com/">location2</option>
<option value="http://www.location3.com/">location3</option>
<option value="0">----- Other Locations  -----</option>
<option value="http://www.olocation1.com/">olocation1</option>
<option value="http://www.olocation2.com/">olocation2</option>
<option value="http://www.olocation3.com/">olocation3</option>
</select>​

デモ: http: //jsfiddle.net/pratik136/kWHXX/

なんで?

あなたのコード:

onchange="if (this.selectedIndex > 0) document.location.href=this.value;"

リストでindex選択されたのをチェックしていました。optionリストインデックスはから始まるため、最初の(または0番目のインデックス)アイテムが選択された0ときに期待される結果が得られていました。しかし、他のすべてのアイテムはテストに合格し、リダイレクトされました。selectedIndex > 0

を使用して

onchange="if (this[this.selectedIndex].value !== '0') document.location.href=this.value;"

基本的valueに、選択されたのをチェックし、のindex場合はvalue !== '0'それにリダイレクトします。

于 2012-11-28T02:01:31.743 に答える
3

あなたはそれらをURL0にリダイレクトしています。それはそれがとして解釈し/0ます。"0"のようなものを使用して、値がではないことを確認するためのチェックを行うことをお勧めしますthis.value !== "0"

于 2012-11-28T01:59:56.447 に答える