javascript如果复选框上的条件只运行一次

时间:2013-08-20 11:18:21

标签: javascript html forms if-statement checkbox

我对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');
    }
  }) 

它应该做的是在显示两个单选按钮之间交替,但它没有做任何事情,但当我颠倒了条件的顺序,即我想要的相反;那么所需的功能只发生一次

2 个答案:

答案 0 :(得分:3)

问题是$('#available:checked')是一个jQuery对象 - 而不是bool值。要获得bool值,你应该这样做:

if ($(this).is(':checked')) {
    ...
}
else {
    ...
}

答案 1 :(得分:1)

如果您不想更改代码,只需添加.length

即可
if ($('#available:checked').length) {
    //Do Something
}