我对javascript编程相当新,即使经过这里的问题也似乎无法做到这一点,基本上我有一个复选框,只有当它被取消选中时才会显示两个单选按钮
<span><strong>Not Available</strong></span>
<input type="checkbox" placeHolder="" id="available" style="" name="available" required value="Yes"/>
<span style=" visibility: hidden; " id="BACSSpan">BACS</span><input type="radio" id="BACS" name="paymentSpecified" value="BACS" style="visibility: hidden;">
<span style="visibility: hidden;" id="ChequeSpan">Cheque</span> <input type="radio" id="Cheque" name="paymentSpecified" value="Cheque" style=visibility: hidden;">
我使用了以下javascript:
$('body').on('click', '#available', function ()
{
if ($('#available:checked'))
{
$('#BACSSpan').css('visibility','hidden');
$('#BACS').css('visibility','hidden');
$('#ChequeSpan').css('visibility','hidden');
$('#Cheque').css('visibility','hidden');
} else
{
$('#BACSSpan').css('visibility','visible');
$('#BACS').css('visibility','visible');
$('#ChequeSpan').css('visibility','visible');
$('#Cheque').css('visibility','visible');
}
})
它应该做的是在显示两个单选按钮之间交替,但它没有做任何事情,但当我颠倒了条件的顺序,即我想要的相反;那么所需的功能只发生一次
答案 0 :(得分:3)
问题是$('#available:checked')
是一个jQuery对象 - 而不是bool值。要获得bool值,你应该这样做:
if ($(this).is(':checked')) {
...
}
else {
...
}
答案 1 :(得分:1)
如果您不想更改代码,只需添加.length
。
if ($('#available:checked').length) {
//Do Something
}