1

我正在动态设置我的选择字段的选项。每次表单更改时,都会从 Servlet 接收新数据并覆盖当前选择。

这里的问题是,如果我选择一个选项,表单会加载 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 回答