2014-07-23 61 views
0

我似乎無法讓我的頭在這個代碼位有什麼問題: 它實質上增加了一個值檢查到無線電輸入並且如果廣播有這個價值打開div。如何添加一個值到輸入,如果它有值打開一個div

$(document).on("click","input[name=newBillingAddress]:radio",function(){ 
$("input:radio[name=newBillingAddress]:checked").val('checked'); 
$("input:radio[name=newBillingAddress]:not(:checked)").val('unchecked'); 
} 


if($('#existingBillingRadio').val('checked')){ 
    $('.toggleBlock').slideDown(); 
}); 
+0

'$(this)'是什麼? –

+0

您應該使用'prop'方法而不是'val'來檢查複選框。 http://api.jquery.com/prop/ – MasNotsram

+0

@DhavalMarthak此代碼中的所有地方,並非在所有代碼中都處處可見。就在處理複選框和收音機時。 – MasNotsram

回答

0

要檢查值在if語句,你必須把它

$(document).on("click", "input[name=newBillingAddress]:radio", function(){ 

    $("input:radio[name=newBillingAddress]:checked").val('checked'); 
    $("input:radio[name=newBillingAddress]:not(:checked)").val('unchecked'); 

    // removed extra } 

    if($('#existingBillingRadio').val() === 'checked'){ 
     $(this).parent().find('.toggleBlock').first().slideDown(); 
    } 

}); 

它並不真正清楚你真正想要的,但單選按鈕有一個檢查屬性,而不是一個比較。所以你應該檢查的是

$(document).on("click", "input[name=newBillingAddress]:radio", function(){ 

    // $("input:radio[name=newBillingAddress]:checked").prop('checked', true); 
    // $("input:radio[name=newBillingAddress]:not(:checked)").prop('checked', false); 

    // the above lines don't make sense in this case anymore. 
    // removed extra } 

    if($('#existingBillingRadio').is(':checked')){ 
     $(this).parent().find('.toggleBlock').first().slideDown(); 
    } 

}); 
+0

回想起來,我本可以讓這個問題更清楚。這做了我正在尋找的東西。非常感謝 :) – zk13

-1

您製作的是分配內部條件,你必須這樣做:

if($('#existingBillingRadio').val() == 'checked') 

雖然我會檢查只檢查屬性,並刪除之前的VAL分配:

if($('#existingBillingRadio')is(":checked") { 
    $(this).parent().find('.toggleBlock').first().slideDown(); 
} 
+0

'===',兄弟。此外,這不是如何檢查是否選擇了無線電輸入選項。 –

0
if($('#existingBillingRadio').val('checked')){ 
    $(this).parent().find('.toggleBlock').first().slideDown(); 
}); 

上述情況始終爲真,只會在頁面加載時運行一次。

相關問題