1

如果没有选择任何内容,是否有可能selectedIndex返回 -1,而不是位置 0 的元素文本。

selectedIndex即使未选择任何内容,也返回 0。

<select id="qwe" name="qwe">
    <option>11</option>
    <option>22</option>
</select>   

document.someForm.qwe.value
//returns 11

$('#qwe option:selected').val()
//returns 11



<select id="qwe" name="qwe">
    <option selected="false">11</option>
    <option>22</option>
</select>   
$('#qwe option:selected').val()
//returns 11

<select id="qwe" name="qwe">
    <option selected="false">11</option>
    <option selected="false">22</option>
</select>   
$('#qwe option:selected').val()
//returns 22
4

4 回答 4

2

无需添加默认的第一个选项...只需使用.prop()并更改selectedIndex

$('#qwe').prop('selectedIndex', -1); 

演示:http: //jsfiddle.net/dirtyd77/j76yH/2/

如果您有任何问题,请告诉我!

于 2013-03-28T15:48:32.967 回答
-1

选择框必须始终选择一个值(默认情况下为第一个选项)。如果您想要这样的行为,只需在列表顶部添加一个空选项,使用您想要的任何值(例如 -1 )。

于 2013-03-28T15:37:05.093 回答
-1

这个怎么样?

    <select id="demo">
      <option value="-1">---</option>
      <option value="1">1</option>
      <option value="2">1</option>
    </select>

正如 hexblot 所说,每个选择框都有一个选定的值。总是.. ;)

于 2013-03-28T15:43:12.117 回答
-1

尝试使用以下语句:

if ($('#qwe option[selected="selected"]').val() === undefined) return -1;
于 2013-03-28T15:43:56.960 回答