21
function call(op) {
    var x = op.selectedOptions[0].textContent;
    var n = x.substring(0, 3);
    //alert(n);
    document.pts.inputbox.value = n;
    document.pts.submit();
}

リストボックスで選択したオプションからラベル値を取得し、最初の3文字を分析して、その情報を入力ボックスの値に渡す関数があります。

問題は、jsが選択されたオプションラベルのテキストコンテンツをどのように取得しているかにあります。Chromeでは問題なく動作するようですが、firefox17とIE9では何も起こりません。選択したオプションのラベル値を取得するためのより良い方法に関する提案はありますか?

編集:オプション値を使用することはできません。その値は、より具体的なもののために予約されています。JSfiddleではすべてが正常に機能します。

4

2 に答える 2

33

これを試して

function call(op) {
    var x = op.options[op.selectedIndex].text;
    var n = x.substring(0, 3);
    alert('Index : '+op.selectedIndex+' and first 3 lettrs are : '+n);
}

デモ

于 2012-12-06T22:19:48.180 に答える
14

クイックJSFiddleに基づくと、selectedOptionsコレクションはまだ広くサポートされていません。

失敗/サポートされていません:

  • IE10(デスクトップまたはメトロ)
  • IE11
  • Safari 7
  • iOS6 Opera Mini
  • Android4.0.4ブラウザ
  • Android4.0.4Firefoxブラウザ

作品:

  • クローム23.0.1271.95
  • オペラ12.11
  • BlackBerry10ブラウザ
  • iOS6 Safari
  • iOS6 Chrome
  • Android4.0.4Operaモバイルブラウザ
  • Firefox 53.0
于 2012-12-06T22:14:58.857 に答える