JQuery val(“”)仅在IE中返回null

时间:2013-05-08 11:28:17

标签: jquery internet-explorer

这是HTML代码:

<select name="gender" id="gender">
  <option value="MAN">MAN</option>
  <option value="WOMAN">WOMAN</option>
</select>

这是Jquery:

$("#gender").val("");

IE在所选列表中没有显示任何内容(这就是我想要的)。 Firefox和Chrome显示“MAN”!我必须做什么才能让Firefox和Chrome让所选列表为空? 谢谢

P.S。我不想添加空白选项

5 个答案:

答案 0 :(得分:3)

您无法选择不存在的选项(在您的情况下,没有值的选项)。您可以添加一个空选项,然后将该值设置为空:

$('#gender').prepend('<option />').val('');

Here's a fiddle


修改

在回复您的评论时,您可以隐藏新选项:

$('#gender').prepend('<option style="display: none;">Choose</option>').val('');

Fiddle

答案 1 :(得分:1)

$("#gender").val("");会将选项设置为空值,而您当前的HTML代码中没有该值。

添加一个空的选项,例如<option value=""></option>,它应该适用于所有浏览器。

答案 2 :(得分:0)

试试这个 -

<select name="gender" id="gender">
  <option value=""></option>             <-- added a blank option
  <option value="MAN">MAN</option>
  <option value="WOMAN">WOMAN</option>
</select>

答案 3 :(得分:0)

$("#gender").val()一样,您可以获得值

.val()方法主要用于获取表单元素的值

不是.val("")

答案 4 :(得分:0)

如果您想在pageloadonchange事件中找到它,那么您可以在最后附加.change()事件:

$(function(){ //<---------this is doc ready
  $('#gender').change(function(){
     alert($(this).val());
  }).change(); //<----this will triggerred on page load.
});