Javascript 页面重新加载后的Jquery单选按钮

Javascript 页面重新加载后的Jquery单选按钮,javascript,php,jquery,radio,page-refresh,Javascript,Php,Jquery,Radio,Page Refresh,我有一个表单,如果选择了单选按钮,则会向用户提示一个额外的文本字段。我使用以下jQuery来完成此任务: $(document).ready(function(){ $('input:radio[name="accountType"]').change(function() { if ($(this).val() == 'typeA'){ //show the hidden layer $( "#additionalQues

我有一个表单,如果选择了单选按钮,则会向用户提示一个额外的文本字段。我使用以下jQuery来完成此任务:

$(document).ready(function(){
    $('input:radio[name="accountType"]').change(function() {
        if ($(this).val() == 'typeA'){
            //show the hidden layer
            $( "#additionalQuestion" ).show("slow");
           }
        if ($(this).val() == 'typeB'){
            //show the hidden layer
            $( "#additionalQuestion" ).hide("slow");
           }
    });
});

除非用户的响应未通过我的PHP表单验证,否则一切都会正常工作,在这种情况下,表单将通过PHP注入用户的响应重新显示。此时,additionalQuestion层不再可见,即使选择了相应的单选按钮。在这种情况下,如何确保additionalQuestion层保持可见

在注入表单元素的同一位置,注入$document.ready可以获取的JavaScript变量

在PHP中

if ($form_failed)
    echo '<script>var showAdditionalQuestion = 1;</script>';
或者直接插入代码,直接显示部分


这可能比只检查是否在加载时选中复选框更灵活、更健壮。如果设置了表单输入,但您不想在加载时显示该部分怎么办?但这是另一种选择,请尝试在文档内部添加此选项。就绪:

if ($('input:radio[name="accountType"]').val() == 'typeA') {
  $( "#additionalQuestion" ).show();
}

正如@Poornima在评论中提到的,您可以在选中单选按钮和加载页面时运行检查

$(document).ready(function() {

    function checkForAdditionalQuestion() {
        if ($(this).val() == 'typeA'){
            //show the hidden layer
            $( "#additionalQuestion" ).show("slow");
        }
        if ($(this).val() == 'typeB'){
            //show the hidden layer
            $( "#additionalQuestion" ).hide("slow");
        }
    }

    checkForAdditionalQuestion();

    $('input:radio[name="accountType"]').change(function() {
        checkForAdditionalQuestion();
    });
});

除了在更改时显示/隐藏图层外,您还可以检查文档加载时的单选按钮值,并在此基础上显示或隐藏。谢谢!这非常有效,并且很容易添加到我现有的代码中。
$(document).ready(function() {

    function checkForAdditionalQuestion() {
        if ($(this).val() == 'typeA'){
            //show the hidden layer
            $( "#additionalQuestion" ).show("slow");
        }
        if ($(this).val() == 'typeB'){
            //show the hidden layer
            $( "#additionalQuestion" ).hide("slow");
        }
    }

    checkForAdditionalQuestion();

    $('input:radio[name="accountType"]').change(function() {
        checkForAdditionalQuestion();
    });
});