2013-12-18 72 views
0

我有一个表单,如果选择了单选按钮,用户会被提示添加一个文本框。我使用jQuery的如下做到这一点:页面刷新后的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图层保持可见?

+0

随着显示/隐藏“更改”图层,您可以检查文档“加载”上的单选按钮值并根据该值显示或隐藏。 – Poornima

回答

0

在你注入的表单元素在同一个地方,注入一个JavaScript变量,你$(document).ready()可以在JS拿起

在PHP

if ($form_failed) 
    echo '<script>var showAdditionalQuestion = 1;</script>'; 

然后

$(document).ready(function(){ 
    if (showAdditionalQuestion) 
     $('#showAdditionalQuestion').show(); 
}); 

(或只需注入代码,直接显示该部分)

这可能比仅检查加载时是否检查复选框(如果设置了表单输入但您不想在加载时显示该部分会怎么样?)更灵活和更健壮,但这是一种替代方法

+0

谢谢!这工作完美,很容易添加到我现有的代码。 – Sean

0

尝试添加这里面doc.ready:

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

由于@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(); 
    }); 
}); 
相关问题