2013-08-20 31 views
0

我是相當新的JavaScript編程,似乎無法得到這個權利,即使經過這裏的問題後,基本上我有一個複選框,只有當它是顯示兩個單選按鈕未選中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

嘗試:'如果($(本)。是( ':檢查'))'' –

+0

$( '#BACSSpan,#BACS,#ChequeSpan,#Cheque')的CSS( '知名度',。 'hidden');'off-topic,but worth your attention to :) – Emissary

回答

3

事情是,$('#available:checked')是一個jQuery對象 - 不是一個布爾值。要獲得布爾值,你應該做的:

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

thanx,只讀這個並在我的代碼上實現,像魅力一樣工作...... –

1

如果你不想改變你的代碼很多,你可以簡單地添加.length

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