我的代码到目前为止
// Get selected positions var $selPositions = $('select#empPositions').val();
HTML
<select name="empPositions[]" id="empPositions" style="width: 370px;" multiple="" data-placeholder="Choose a Position" required=""> <option></option> <optgroup label="Admin"> <option disabled="">There are no positions assigned to Admin</option> </optgroup> <optgroup label="information Technology"> <option value="1" selected="" disabled="">IT Developer</option> <option value="2">IT Geeks</option> </optgroup>
请注意,禁用选项会根据其他变量进行更改,但它仅为我提供了选定的非禁用值.任何人都可以让我知道这是否可以做到以及如何做?
我正在使用Chosen,因此为什么禁用选项
小提琴:http://jsfiddle.net/c5kn5w75/
我确实在JQuery Bug Site上找到了this article
The long-standing logic in .val() ensures that we don’t return disabled options in a select-multiple. The change just applies the same behavior for select-one Now for consistency. You can get to the disabled option value through $(“select”).prop(“selectedindex”) if you need it.
但这对我不起作用.
解决方法
var opt = $('#empPositions option:selected').map(function(i,v) { return this.value; }).get(); // result is array alert( opt );
请记住,当您提交表单时,即使选择了禁用选项,也不会提交.如果您通过AJAX提交,那么您可以获取如上所示的值.
还要记住$(‘option [disabled]’).val()将返回第一个禁用选项元素的值和$(‘option [disabled]:selected’).val()第一个选中的值禁用选项.
如果始终只有一个选定的禁用选项元素,则可以使用以下命令对其进行定位:
var opt = $('#empPositions option[disabled]:selected').val(); // result is string
原文地址:https://www.jb51.cc/jquery/158229.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。