为什么在向select中添加新选项时默认显示第一个选项

时间:2016-12-09 10:02:46

标签: javascript jquery html

总而言之,select的值为null(未选择任何选项)并且已存在一些选项。但是,在通过jquery和vue分别添加新选项后,它会更改为第一个选项的值,为什么? (我们在chrome上测试了这个案例)

1

<select>
    <option val="a">a</option>
    <option val="b">b</option>
<select>

此时:

$("select").val() == null
  1. 使用jquery $("select").append("<option value='hi'>hi</option>")
  2. 将选项添加到select中

    此时:

    $("select").val() == "a"
    

1 个答案:

答案 0 :(得分:0)

默认情况下,HTML更喜欢选择一个选项。您可能需要为selectedIndex手动设置-1select,并在向select中添加元素后覆盖该selectedIndex。您有两种选择之一:

  1. 检测当前var originalSelectedIndex = $("select").prop("selectedIndex"); $("select").append("<option value='...'>...</option>"); $("select").prop("selectedIndex", originalSelectedIndex);并在追加后恢复。与<option label=" "></option>
  2. 相关的内容
  3. 创建一个带有空标签的初始元素,例如local function mydialog() --omitted local wb_responses=activeobj() --wb_responses points to the current activeobj(), say Obj1 UI.m_txt=sys.rangetextcontrol(UI.sbSizerInput:GetStaticBox() ,wb_responses) --wb_responses is passed by reference --Selection event happened print(wb_responses) --Still prints Obj1 instead of Obj2 end ,在提交时,它实质上会向您的服务器提交一个空值。