2014-04-03 68 views
0

我有這樣的HTML標記:如何當複選框被選中執行額外的jQuery代碼/選中

<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的識別複選框屬性。它總是返回未選中狀態。

回答

1

Fiddle Demo

Read This from jQuery Docs

要使用任何的元字符(如

!"#$%&'()*+,./:;<=>[email protected][\]^`{|}~
)作爲名稱的文本部分的,它必須被轉義與兩個反斜槓:\。

\也是特殊的元字符,以便逃避它,你必須使用\

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

+0

不知道你的意思@TusharGupta,你可以幫我有點...有什麼不好? –

+1

非常好,感謝您的幫助@TusharCupta - 您幫助我實現了這一目標。 –

+0

@ H.Ferrence很高興幫助:) –

相關問題