1

ごめん。Javascript (jquery を使用) noob here. これが質問です。

数字の選択フィールドがあります:

<div class="controls">
  <select class="span2" id='select1' onchange="addstuff()">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>
</div>
<div id="addfields"></div>

次に、指定された番号をループし、「select1」の ID を持つ div タグ内に HTML を追加します。

function addstuff()
{
  var num = parseInt($('#select1').val())
  if (num != 0)
  {
    for (i=0; i<num;i++)
      {
        new_field += "<p>" + num + "</p>";
      }
  $('#addfields').html(new_field);
  }
}

したがって、オプション 3 を選択すると、次の html が追加されます。

<p> + num + </p>
<p> + num + </p>
<p> + num + </p>

ただし、2 を選択すると、さらに 2 つのフィールドが追加されます。

<p> + num + </p>
<p> + num + </p>
<p> + num + </p>
<p> + num + </p>
<p> + num + </p>

ただし、以前の html をスクラブして、2 つのエントリのみが必要です。

<p> + num + </p>
<p> + num + </p>

誰かが私が欠けているものを見るのを手伝ってくれるなら、それは大歓迎です。ありがとうございました!

4

2 に答える 2

0

簡単な説明とコードを追加してくれてありがとう...これはあなたが望むことをするはずです:

function addstuff()
{
  var num = parseInt($('#select1').val());
  var new_field = "";
  if (num != 0)
  {
    for (i=0; i<num;i++)
      {
        new_field += "<p>" + num + "</p>";
      }
  $('#addfields').html(new_field);
  }
}

主に、その new_field 変数を再初期化していないように見えるので、ただ構築しているだけです... jquery .html() はその addfields にあるものを上書きするためです。ビルドアップが含まれています。

于 2013-03-09T19:53:03.450 に答える
0

を初期化するnew_fieldことはありません。とにかく行う必要があります。そうすれば、あなたの問題も修正されます。

function addstuff() {
    var new_field = '';

ところで、jQuery を使用しているため、イベント属性よりもイベント バインディングを使用する方が簡単です。の代わりにonchange="addstuff()"、次のようにします。

$("#select1").on('change', addstuff);

addstuff匿名関数として定義してバインドすることもできます。

于 2013-03-09T19:44:48.757 に答える