如何通过jQuery将下拉列表的选定值设置为空?

17

我正在使用 jQuery 来填充下拉列表,代码如下:

 var myOptions = {  
   val1 : 'text1',   
   val2 : 'text2',
   val3 : '' 
    };
 $.each(myOptions, function(val, text) {  
   $('#mySelect').append( $('<option></option>').val(val).html(text)    
);

 });

现在我的下拉列表里有3个选项,我想将我的下拉列表的选中值设置为'',就像这样:

$("#mySelect option contain('')").attr(selected,true).

实际上,这将获取所有三个项,以便不将''设置为选定值,有没有办法可以做到这一点?


2
如果你从不接受正确答案,那么你就无法奖励那些试图帮助你的人,从而减少了获得答案的机会。 - Phil
你必须接受问题的答案。只需单击解决你问题的答案旁边的复选标记。 - Tim Büthe
1
你真的需要使用 .html(text) 来设置标签吗?如果文本中没有 HTML,应该使用 .text(text) 来防止 XSS 漏洞。如果 text 可能包含用户输入,则这非常重要。 - Tim Büthe
3个回答

45
$("#mySelect option[value='']").attr('selected', true)

3
@JoshPinter 你能执行 .val(null) 吗? - Dylan Czenski

12

这将会做同样的事情。 $('#elemtId').val('') 将实现相同的结果


这在某些情况下往往会失败。在我的特定情况下,在iOS的移动Chrome中,如果它在更改事件内部,则无法正常工作。 - Cenobyte321
对于多选,这将绑定一个空字符串。 - Rudra

2
我理解你的问题是想将选定的值设置为空。
如果是这样,你可以尝试使用
$(“#elementId”).val('');
例如:
$(“#val3”).val(''); 否则,如果你想通过查找选项文本来设置任何特定的值作为选定值,请尝试这个
最后,如果你想将val3设置为选定值,即设置一个已知的特定选项作为选定值,请尝试这个。 我已经尝试了所有这些方法……希望能对你有所帮助 :)

感谢您的回答!遗憾的是,它非常依赖于外部链接,还有很大的改进空间。如果您能够将链接解决方案的关键部分直接整合到您的答案中,那就太好了。在当前状态下,您的贡献可能会被删除。在这里,您可以找到一些有用的提示如何改善您的答案。谢谢! - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接