jquery:如果没有选中,则选择总是选择第一个元素

时间:2014-07-29 06:50:15

标签: javascript jquery html jquery-selectors selected

我有一个选择元素

<select id='bill_to'>
     <option value='a634jhj2'>test@c.com</option>
     <option value='agfd4ghj2'>test2@c.com</option>
     <option value='asdf634jhj2'>tes3@c.com</option>
     <option value='agf2342d4ghj2'>test4@c.com</option>
</select>

如果我这样做

  $('#bill_to').find(':selected') 

即使未选中,也会返回第一个选项。

如果选择了一个选项

  $('#bill_to').find(':selected') 

按预期工作并返回正确的选项

我做错了什么?这是一个错误。这真让我抓狂。 如果没有选择

,我只想让它返回[]

3 个答案:

答案 0 :(得分:4)

如果没有带selected属性的选择选项,则默认情况下,第一个选项将是所选选项。您可以尝试在顶部添加另一个包含默认值的选项,如下所示。

<select id='bill_to'>
     <option value='-1'>Select<option>
     <option value='a634jhj2'>test@c.com<option>
     <option value='agfd4ghj2'>test2@c.com<option>
     <option value='asdf634jhj2'>tes3@c.com<option>
     <option value='agf2342d4ghj2'>test4@c.com<option>
</select>

如果未选择任何内容,您将获得-1,然后您可以继续。

e.g。 http://jsfiddle.net/fZv5t/

答案 1 :(得分:1)

我添加了选项&#34;&#34;的结束标记,没有这个我在下拉列表中的每个选项后都插入一个空选项。可以在此Fiddle.

中看到问题

工作示例就在这个Fiddle.

尝试添加空选项标记:

<select id='bill_to'>
    <option></option>
    <option value='a634jhj2'>test@c.com</option>
    <option value='agfd4ghj2'>test2@c.com</option>
    <option value='asdf634jhj2'>tes3@c.com</option>
    <option value='agf2342d4ghj2'>test4@c.com</option>
</select>

在这里你将获得空字符串,如下所示:

$('#bill_to').find(':selected').val();

答案 2 :(得分:0)

如果您不能或不想先添加虚拟对象-U,则可以选择并测试<option>返回的元素的选定属性,例如:< / p>

:selected