1

選択フィールドのオプションを動的に設定しています。フォームが変更されるたびに、新しいデータがサーブレットから受信され、現在の選択が上書きされます。

ここでの問題は、オプションを選択すると、フォームが JavaScript 関数をロードし、選択/フォーカスが失われることです。

var capacityOptionsAsString = "";
for(var i = 0; i < capacityArray.length; i++) {
  capacityOptionsAsString += "<option value='" + capacityArray[i] + "'>" + capacityArray[i] + "</option>";
  console.log('capacity option: ' + capacityOptionsAsString);
}
$("select[name='inptCapacity']").find('option').remove().end().append($(capacityOptionsAsString));

選択を維持する方法はありますか?


編集:多分私は十分に明確ではありませんでした。セレクションを維持したい。したがって、オプションが選択されている場合は検証する必要があり、選択されている場合は再度選択する必要があります。

4

2 に答える 2

0

もう一度フォーカスを設定してください:

$("select[name='inptCapacity']").focus();

アップデート

選択されたオプションを取得:

var selected_value = $("select[name='inptCapacity'] option:selected").val()

変更を行います

$("select[name='inptCapacity']").find('option').remove().end().append($(capacityOptionsAsString));

もう一度選択します。

$('select[name='inptCapacity'] option[value="' + selected_value + "]').attr('selected', 'selected');

選択には完全にIDが必要です;)

于 2012-04-24T09:11:33.923 に答える
0
$('select[name="inptCapacity"]').is(':focus');

$('form[name="formName"] :input').change(function() {

   // keep the select focus always on input change

   $('select[name="inptCapacity"]').focus(); 

});
于 2012-04-24T09:16:13.097 に答える