4

このjsFiddleが機能しない理由を教えてください。

アイデアは単純で、選択したテキストをテキストボックスに入力するとします..

HTML:

<input type="text" id="teste" maxlength="50">
<select>
    <option onClick="nelson">nelson</option>
</select>

JavaScript:

function nelson(){
    document.getElementById('teste').value =+ "nelson"; 
}

前もって感謝します

4

6 に答える 6

8

デモ: jsFiddle

HTML:

<input type="text" id="teste" maxlength="50" />
<select onchange="selectedItemChange(this)">
    <option value="nelson">nelson</option>
    <option value="justin">justin</option>
</select>

JS:

function selectedItemChange(sel) {
    document.getElementById('teste').value = sel.value;
}

説明:

<option onClick="nelson">nelson</option>
  • 次の 3 つの理由で変更されました。

    1. onclickonClick一貫性のために好ましい
    2. nelsonnelson()実際に関数を呼び出すには、に変更する必要がありました。
    3. selecthtml 要素 を扱っているのでonchange、ルートでイベントを使用することをお勧めします。

document.getElementById('teste').value =+ "nelson";

  • 他の多くの人が指摘しているように、適切な演算子は+=または=

初期値を設定するには、次のようにします

デモ: jsFiddle

HTML

<input type="text" id="teste" maxlength="50" />
<select id="select-people" onchange="selectedItemChange(this)">
    <option value="nelson">nelson</option>
    <option value="justin">justin</option>
</select>

JS

function selectedItemChange(sel) {
    document.getElementById('teste').value = sel.value;
}

window.onload=function(){
    document.getElementById('teste').value = document.getElementById("select-people").value;
}
于 2013-08-09T09:30:04.853 に答える
2

まず、正しい演算子は+=not=+です。

これが機能しない理由は、関数を呼び出す必要があるためです:)

クロージャーを即座に実行させてください:

(function nelson(){
    document.getElementById('teste').value += "nelson"; 
})();

またはなしfunction:

document.getElementById('teste').value += "nelson";

またはどこでも呼び出します:

nelson();
于 2013-08-09T09:22:45.057 に答える
1

これは完全に機能するソリューションであり、コードで動作します

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<input type="text" id="teste" value="" />

    <select onchange="nelson()" id="sel_nel">
      <option value="">select</option>
      <option value="nelson">nelson</option>
    </select>


<script>
    function nelson(){              
      document.getElementById('teste').value = document.getElementById('sel_nel').value; 
    }
</script>
</body>
</html>
于 2013-08-09T09:43:36.573 に答える
1

ID が間違っています。 に変更=+して+=ください。

の推奨イベントを使用してみてくださいselect。ですchange

<input type="text" id="teste" maxlength="50">
<select onchange="nelson(this.value);">
  <option>nelson</option>
</select>

そしてJS

function nelson(value){
  document.getElementById('teste').value += value; 
}
于 2013-08-09T09:25:47.623 に答える
0

このフィドルを見てください:タグ内で行われた選択に応じて、テキスト入力の値を変更したいと思いますselect

--> http://jsfiddle.net/mQyLG/2/

更新(説明):

  1. の値をselect直接設定します。本当に+=の場合は、 に変更できますinput.value = select.value
  2. すべての単一のonchangeイベントのselect代わりにのイベントを使用しました。このように、多くのコードを節約できます;)onclickoption
  3. 初期値があることを確認するために、開始時にメソッドを 1 回呼び出します。
  4. 関数のスコープを一致するように変更しましたwindow。これは最良のアイデアではなく、実際のスコープに適合するはずです。
于 2013-08-09T09:29:31.847 に答える