如何为输入添加值,如果有值,则打开div

时间:2014-07-23 13:46:34

标签: jquery

我似乎无法理解这段代码的错误:  它实质上是将一个值加入到无线电输入中,如果无线电有该值则打开一个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();
});

3 个答案:

答案 0 :(得分:0)

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

上述条件始终为true,并且只会在页面加载时运行一次。

答案 1 :(得分: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();
    }

});

答案 2 :(得分:-1)

您正在条件内进行分配,您必须这样做:

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

虽然我只会检查已检查的属性,并删除之前的val赋值:

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