我有一个选择元素
<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')
按预期工作并返回正确的选项
我做错了什么?这是一个错误。这真让我抓狂。 如果没有选择
,我只想让它返回[]答案 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
,然后您可以继续。
答案 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