javascript – 在Select Multiple Jquery中获取Disabled选项的值

前端之家收集整理的这篇文章主要介绍了javascript – 在Select Multiple Jquery中获取Disabled选项的值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有我的页面上的多个选择,我有一个选项关闭,使用户无法取消选择他们,但我不能工作了如何让残疾人选项的值.

我的代码到目前为止

// 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.

但这对我不起作用.

解决方法

DEMO
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

猜你在找的jQuery相关文章