选择器,用于仅选择jquery中列表中的已检查项目

时间:2013-09-30 12:20:32

标签: c# jquery asp.net

我正在使用jquery multiselect插件

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

我想只提取已检查项目的文本

我的代码是

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>

但它也让我退回了@@

添加的废弃物品

选择器出了什么问题 任何帮助将受到高度赞赏

由于

3 个答案:

答案 0 :(得分:3)

您在HTML中使用option标记选择器input时错误地使用了$('#lsltrXYAxis input:checked:not(:disabled)');

试试这个:

data

此外,如果您需要将某些数据与元素相关联,最好使用value属性,而不是从<input value="ltrXYAxisCustomer Price" ... /> 属性中提取和替换数据。

而不是:

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

尝试:

return $(this).data('val');

在你的JavaScript中:

{{1}}

答案 1 :(得分:1)

尝试下面的一些事情

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

答案 2 :(得分:0)

您必须使用:checked选择器。

:selected选择器的documentation指定“:selected选择器适用于<option>元素。它不适用于复选框或广播inputs ;对他们使用:checked。“