jquery - 以html形式切换隐藏和显示

标签 jquery html css

我想显示和隐藏 html 表单的可见性。我有两种模式,当选择模式 1 时,表单应显示文本框,当选择模式 2 时,应显示带有单选按钮的表单,模式 1 应隐藏,最初所有内容都隐藏。这是我到目前为止所做的,但我的 jQuery CSS 无法应用。

HTML 表单

<form>
  <fieldset>
    <legend>Lets switch</legend>
     Mode 1 
    <input type="radio" class="modeClass" name="change_mode" value="Text box">
     Mode 2  
    <input type="radio" class="modeClass" name="change_mode" value="Radio buttons"> <br>
    <div id= "text_form">
   <label class="hidden"> Name:</label> <input type="text" class ="hidden"><br>
   <label class= "hidden"> Email:</label> <input type="text" class ="hidden"><br>
    <label class= "hidden"> Date of birth:</label> <input type="text" class ="hidden">
    </div>
   <div id="radio_form">
   <input type="radio" name="sex" class ="hidden" value="male"><label  class="hidden">Male</label>
   <input type="radio" name="sex" class="hidden" value="female"><label class= "hidden">Female</label>
   </form>
  </fieldset>
</form>  

CSS

<style>
.hidden 
{

  display:none;

} 
</style>

JQuery

 $(document).ready(function(){

    /*Getting the value of the checked radio buttons*/
    $("input:radio[class=modeClass]").click(function() {
       var value = $(this).val();
     /*  console.log(value);*/
    if(value=="Text box")
    {

    $("#text_form").css("display","block");
   /* console.log("Time to call input box");*/
    }

    if(value=="Radio buttons")
    {

    $("#radio_form").css("display","block");

    }


    });

    });

任何想法建议都将受到高度赞赏。

最佳答案

您不需要将 class="hidden" 应用于如此多的元素。 Here是一个工作代码的摆弄。

HTML

<form>
    <fieldset>
        <legend>Lets switch</legend>Mode 1
        <input type="radio" class="modeClass" name="change_mode" value="Text box" />Mode 2
        <input type="radio" class="modeClass" name="change_mode" value="Radio buttons" />
        <br />
        <div id="text_form" class="hidden">
            <label>Name:</label>
            <input type="text" />
            <br />
            <label>Email:</label>
            <input type="text" />
            <br />
            <label>Date of birth:</label>
            <input type="text" />
        </div>
        <div id="radio_form" class="hidden">
            <input type="radio" name="sex" value="male" />
            <label>Male</label>
            <input type="radio" name="sex" value="female" />
            <label>Female</label>
        </div>
    </fieldset>
</form>

jQuery
$(document).ready(function () {
    /*Getting the value of the checked radio buttons*/
    $("input.modeClass").on( 'click', function () {
        var value = $(this).val();
        if (value == "Text box") {
            $("#text_form").show();
            $("#radio_form").hide();
        }
        if (value == "Radio buttons") {
            $("#text_form").hide();
            $("#radio_form").show();
        }
    });
});

关于jquery - 以html形式切换隐藏和显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15595905/

相关文章:

html - 如何找到css的图像路径

html - RoR - 如何将一些带有 css 的 HTML 元素转换为 Rails

html - 我该如何处理这样的表格边框?

javascript - 如何自定义 emmet 以生成像 html 这样的动态 javascript 代码

jquery - 如何通过 jQuery 显示隐藏的内容 block

javascript - 使列表项水平放置,即使在小屏幕上也不会换行

javascript - 如何使用 CSS 变换为拖动添加动量/惯性?

jquery - 需要检查 div 可见性以创建 "navigation menu"

jquery - 使用 Jquery Bootgrid 的 Asp.Net MVC 应用程序不显示任何结果

Javascript 换行符抛出错误