我对 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');
}
})
它应该做的是交替显示两个单选按钮,但它没有做任何事情,但是当我颠倒条件的顺序时,即与我想要的相反;那么所需的功能仅发生一次
最佳答案
问题是 $('#available:checked')
是一个 jQuery 对象 - 而不是 bool 值。要获得 bool 值,您应该这样做:
if ($(this).is(':checked')) {
...
}
else {
...
}
关于javascript if 复选框的条件仅运行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18333646/