2

我正在使用 jquery 多选插件

我禁用了一些项目,并且在列表中检查了一些项目

我只想提取选中项目的文本

我的代码是

var cval2 = $('#lsltrXYAxis option:checked').not(":disabled").map(function () {
            return this.value.replace('ltrXYAxis', '');
        }).get().join('@@');

禁用项目的 HTML 是

<label class="ui-corner-all ui-state-hover" title="" for="ui-multiselect-lsltrXYAxis-option-0">
<input id="ui-multiselect-lsltrXYAxis-option-0" type="checkbox" aria-disabled="true" disabled="disabled" title="" value="ltrXYAxisApple Identifier" name="multiselect_lsltrXYAxis">
<span>Apple Identifier</span>
</label>

和选中项目的 HTML 是

<label class="ui-corner-all" title="" for="ui-multiselect-lsltrXYAxis-option-1">
<input id="ui-multiselect-lsltrXYAxis-option-1" type="checkbox" aria-selected="true" checked="checked" title="" value="ltrXYAxisCustomer Price" name="multiselect_lsltrXYAxis">
<span>Customer Price</span>
</label>

但它也返回给我添加了@@的禁用项目

选择器有什么问题任何帮助将不胜感激

谢谢

4

3 回答 3

3

option在 HTML 中错误地使用了标签选择器input

尝试这个:

$('#lsltrXYAxis input:checked:not(:disabled)');

此外,如果您需要将某些数据与元素相关联,则最好使用data属性,而不是从属性中提取和替换数据value

代替:

<input value="ltrXYAxisCustomer Price" ... />

尝试:

<input data-val="Price" ... />

在你的 JavaScript 中:

return $(this).data('val');
于 2013-10-01T09:54:39.543 回答
1

试试下面的一些东西

 var cval2 = $(':#lsltrXYAxis option:selected:not(:disabled)').map(function () {
                return this.value.replace('ltrXYAxis', '');
            }).get().join('@@');
于 2013-10-01T12:30:54.547 回答
0

您必须使用:checked选择器。

选择器的文档指定,:selected:selected选择器适用于<option>元素。它不适用于复选框或单选inputs:checked用于它们。”

于 2013-10-01T09:04:36.743 回答