0

次のコードは、IE以外のブラウザーで完全に機能します。 これらの最初の3つのオプションはjQueryを介して追加されたことに注意してください。

<select id="mySelect" name="mySelect">
  <option value="1">MyVal1</option>
  <option value="2">MyVal2</option>
  <option value="3">MyVal3</option>
</select>

新しいオプションを追加できるように、オプションをクリアします。

// my new values has the proper values of [{"Id": 4, "Text" : "MyVal4"}, {"Id": 5, "Text": "MyVal5"}]
$("#mySelect").empty();
for (var i = 0; i < myNewVals.length; i++) {            
  $("#mySelect").append('<option value="' + myNewVals[i].Id + '">' + myNewVals[i].Text + '</option');
}

初めて入力しようとすると機能しますが、その後は毎回、ドロップダウンに同じ値が再入力されます。オプションを作り直そうとしたときに、なぜ新しい値を無視するのですか?

4

2 に答える 2

1

JSON配列を使用することをお勧めします。次のようなものを試してください。

<script>
    $(document).ready(function () {
        var myNewVals = { 4: 'Myval4', 5: 'Myval5' };

        $("#popButton").bind('click', function (event) {

            $("#mySelect").empty(); 
            $.each(myNewVals, function(val, text) {
                $("#mySelect").append($('<option></option>').val(val).html(text))
            });
        });
    });
</script>

<select id="mySelect" name="mySelect">
    <option value="1">MyVal1</option>
    <option value="2">MyVal2</option>
    <option value="3">MyVal3</option>
</select>
<input type="button" id="popButton" value="Populate!" />
于 2012-08-17T12:29:51.603 に答える
0

ドロップダウンから無効な属性を削除しようとしたため、問題が発生しました。再作成の合間に無効にすると、機能するようです。非常に愚かなバグ。

于 2012-08-17T12:36:44.900 に答える