选中/取消选中复选框时如何执行其他jQuery代码

时间:2014-04-03 17:40:22

标签: jquery checkbox

我有这个HTML标记:

<div class="wf__jqAPcontrol[1] wf__hide wf__optional" style="display: block;">
<label>Additional Info</label>
<fieldset class="wf__list wf__jqAPhtml" enabled="enabled">
<label for="specialDiscount\[1\]_529663" style="padding: 0 !important">
<input type="checkbox" value="-5.00" name="specialDiscount[1]" id="specialDiscount\[1\]_529663" class="wf__list jq__recomputeThisService" checked="checked"> Discount (5%)
</label>
</fieldset>
</div>

我有这个jQuery代码:

if ( $('#specialDiscount\\[1\\]_529663').prop('checked') ) alert('checked');
else alert('unchecked');

我无法让jQuery识别checkbox属性。它总是返回未选中状态。

1 个答案:

答案 0 :(得分:1)

Fiddle Demo

Read This from jQuery Docs

  

要使用任何元字符(例如

!"#$%&'()*+,./:;<=>?@[\]^`{|}~
)作为名称的文字部分,必须使用两个反斜杠进行转义:\。

\也是特殊的元字符,所以要逃避它,你必须使用\

var el = $('[id="specialDiscount\\\\[1\\\\]_529663"]');
//              ^            String               ^
if (el.prop('checked')) alert('checked');
else alert('unchecked');

\这里需要\\因为它包含在引号中所以它是字符串

Attribute Equals Selector [name="value"]

<小时/> Fiddle Demo

var el = $('#specialDiscount\\\\\\[1\\\\\\]_529663');

\您需要\\\\

[您需要\\[

]您需要\\]


<强>问题

你的选择器是错误的,所以如果条件总是返回false