我正在动态设置选择字段的选项。每次表单更改时,都会从 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));
知道如何保留选择吗?
<小时/>编辑:也许我还不够清楚。我想保留选择。所以它必须被验证,如果该选项被选择,如果是,我们必须再次选择它。
最佳答案
只需再次设置焦点即可:
$("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 来进行选择;)
关于javascript - 重建选项列表时失去选择选项的焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294937/