如果在页面加载或单击时选择单选按钮,则显示表单字段

时间:2014-12-09 17:51:33

标签: jquery forms radio-button

我正在尝试获取特定的表单字段,以显示是否在页面加载时选择了特定的单选按钮,或者是否单击了它。我已经搞乱了几个小时,这是我得到的最接近的。现在它正在运行整个showForm函数,无论如何。我使用input[type='radio']切换了$(this),但$(this)没有任何意义,因此显然无法正常工作(here's the JS fiddle for that.该表单在点击时可以使用,但不会显示表单页面加载)。我还从showForm函数中取出了所有这些,并试图trigger.click()像这样

if ($("input[type='radio']").is(':checked')){
    $(this).trigger('click');       
}

但这也不起作用。

这是JS:

$(document).ready(function() {
$(".currentForm, .address, .trust, .individual").hide();

if ($("input[type='radio']").is(':checked')){
    showForm();     
}

 $("input[type='radio']").click(showForm);    

function showForm(){    
    if($("input[type='radio']").attr('name') == 'enterAddress' && $(this).attr('value') == 'true') {
        $('.address').slideDown( "slow", function() {});                   
    }       
    else{
        $('.address').slideUp( "slow", function() {});  
    }

    //Individual
    if($("input[type='radio']").attr('id') == 'nameType1') {
        $('.currentForm, .address, .trust, .business').hide();  
        $('.individual, .currentForm').slideDown( "slow", function() {});  
        $('#enterAddress1').attr('checked', false);
        $('#enterAddress2').attr('checked', true);                
    } 
    //Trust
    else if($("input[type='radio']").attr('id') == 'nameType2'){
        $('.currentForm, .address, .individual, .business').hide();
        $('.trust, .currentForm').slideDown( "slow", function() {});
        $('#enterAddress1').attr('checked', false);
        $('#enterAddress2').attr('checked', true);
    }
    //Business
    else if($("input[type='radio']").attr('id') == 'nameType3'){
        $('.currentForm, .address, .individual, .trust').hide();
        $('.business, .currentForm').slideDown( "slow", function() {});
        $('#enterAddress1').attr('checked', false);
        $('#enterAddress2').attr('checked', true);
    }
}// end showForm                
});

Here is the current jsFiddle

1 个答案:

答案 0 :(得分:0)

请改用以下内容:

$("input[type='radio']").on('change', showForm).filter(':checked').change();

//assuming you have just one radio button
//if not then make ':checked' be specific to that particular radio button.

你不需要这个部分:

if ($("input[type='radio']").is(':checked')){
    showForm();     
}