0

特定の値が選択されたときに、適切なテキスト ボックスを表示できるようにしたいと考えています。助けていただければ幸いです。

JQUERY 
$('#enterdatabox').change(function() {
var selected = $(this).val();
  $('#' + selected).css('display', selected ? 'block' : 'none');
});



HTML
<select name="enterdatabox" id="enterdatabox">
      <option value="">Please Choose...</option>
      <option value="option1">Option 1</option>
      <option value="option2">Option 2</option>
      <option value="option3">Option 3</option>
      <option value="option4">Option 4</option>
      <option value="option5">Option 5</option>
      <option value="option6">Option 6</option>
      <option value="option7">Option 7</option>
      <option value="option8">Option 8</option>
</select>

<input type="text" id="option1" style="display: none;" />
<input type="text" id="option2" style="display: none;" />
<input type="text" id="option3" style="display: none;" />
<input type="text" id="option4" style="display: none;" />
<input type="text" id="option5" style="display: none;" />
<input type="text" id="option6" style="display: none;" />
<input type="text" id="option7" style="display: none;" />
<input type="text" id="option8" style="display: none;" />
4

1 に答える 1

-1

コードは問題ありませんが、問題はおそらく、要素が存在する.change前にバインドしていることです。#enterdatabox3 つの簡単な解決策があります。

  1. JavaScript コードをHTML の後に移動します
  2. JavaScript コードをラップします。$(document).ready(function () {}
  3. イベント委任を使用します。$(document).on('change, '#enterdatabox', function () {

最初のものはおそらく最も簡単です。


ちなみに、ID をすべて削除<input>して div でラップし、.index()

于 2013-04-07T16:34:41.870 に答える