0

入力フィールドの値をチェックしてフォームに配置する小さなJS関数を作成しました。

function insertText()
{
result = document.new_link['link[link]'].value;
document.getElementById("link-link").innerHTML=result;
}

これは素晴らしい働きをします。(new_linkはフォームの名前です)

今、私は選択したドロップダウンメニューで同じことをしています:

<select name="link[link_category]">
<option value="1">Something</option>
</select>


function insertText2()
{
result = document.new_link['link[link_category]'].value;
document.getElementById("link-category").innerHTML=result;
}

ここでの結果は、私が気に入らない値「1」です。「何か」という出力が欲しいので、それが選択されたときのオプションの内容は正確に何ですか。

私はこれを試しました:

function insertText2()
{
result = document.new_link['link[link_category]'].content;
document.getElementById("link-category").innerHTML=result;
}

しかし、それは私に「未定義」の出力を与えます。私も「テキスト」を試しましたが、成功しませんでした。目標を達成するために何をする必要がありますか?

助けてくれてありがとう!

4

2 に答える 2

0

これはどう:

function insertText2()
{
   var dropdown = document.new_link['link[link_category]'];
   var selOption = dropdown[dropdown.selectedIndex];
   document.getElementById("link-category").innerHTML=selOption.innerHTML;
}

したがって、ドロップダウン要素を取得します。次に、選択したインデックスを見つけ、それを使用して実際に選択したオプションを取得します。それができたら、あなたが求めている値であるはずのinnerHTMLを表示することができます。

于 2013-02-24T19:18:47.733 に答える
0

「何か」を値として入れることができます。ここで「1」を使用した理由はありますか?

<select name="link[link_category]">
    <option value="Something">Something</option>
</select>

個々のオプション要素は、HTMLCollection として利用できます。

document.new_link['link[link_category]'].childNodes
    OR
document.new_link['link[link_category]'].options

現在選択されているオプションは、インデックスとして利用できます。

document.new_link['link[link_category]'].selectedIndex

選択したオプションの「ラベル」は次の場所にあります。

var selectElement = document.new_link['link[link_category]'];
selectElement.options[selectElement.selectedIndex].innerHTML;
于 2013-02-24T19:23:14.357 に答える