javascript - 使用 JavaScript 显示/隐藏表单的某些部分。如何一次只显示一个部分?

标签 javascript jquery forms show-hide jquery-events

我有以下设置:

<form action="?" method="post" name="contactform">

<div class="question">
    <p><span><input type="radio" name="answer" value="Yes" onclick="showHide('one')"/></span> Yes</p>
</div>
<div id="one" class="answers" style="display:none">
    <p><input type="radio" name="answerdetail" value="Reason One" /> Reason One</p>
    <p><input type="radio" name="answerdetail" value="Reason Two" /> Reason Two</p>
    <p><input type="radio" name="answerdetail" value="Reason Three" /> Reason Three</p>
</div><!-- end answers -->

<div class="question">
    <p><span><input type="radio" name="answer" value="No" onclick="showHide('two')"/></span> No</p>
</div>
<div id="two" class="answers" style="display:none">
    <p><input type="radio" name="answerdetail" value="Reason One" /> Reason One</p>
    <p><input type="radio" name="answerdetail" value="Reason Two" /> Reason Two</p>
    <p><input type="radio" name="answerdetail" value="Reason Three" /> Reason Three</p>
    <p><input type="radio" name="answerdetail" value="Reason Four" /> Reason Four</p>
</div><!-- end answers -->

<div class="question">
    <p><span><input type="radio" name="answer" value="Not sure" /></span> Not sure</p>
</div>

当您第一次看到该表格时,只有 3 个复选框可见(是、否、不确定)。当您单击"is"时,会出现"is"的子复选框,如果您单击“否”,则会出现“否”的子复选框。

我想知道是否可以一次只显示一组子复选框?

即如果有人选中"is",则会出现"is"的子复选框。如果他们随后改变主意并单击“否”,则"is"的子复选框会消失,而“否”的子复选框会出现(即在任何时候只有一组子复选框是可见的)。

我希望这是有道理的。

如有任何帮助,我们将不胜感激!

最佳答案

jQuery 有几个内置方法,应该对此很有用。您可以使用 .hide()/.show()切换元素的可见性。您可以使用 .next() 定位正确答案部分.此外,要处理 'change' 事件,您可以使用 .change() ,每次用户选择不同的选项时都会触发处理程序:

$(document).ready(function() {
    $('input[name="answer"]').change(function() {
        $(".answers").hide();
        $('input[name="answer"]:checked')
            .closest(".question")
            .next(".answers")
            .show();
    });
});

关于javascript - 使用 JavaScript 显示/隐藏表单的某些部分。如何一次只显示一个部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12779747/

相关文章:

javascript - 通过 SRC 属性将变量传递给 JavaScript

jquery - 用于绘制 UML 图的免费 JQuery 插件

forms - EXT JS 表单面板有几个部分

Javascript 3 种方式切换

javascript - 在 webpack 中管理 jQuery 插件依赖

c# - ShowDialog() 之后窗体隐藏在另一个窗体后面

php - "header()"php函数是否取消设置全局变量?

javascript - AngularJS:在 $httpBackend.flush() 之前需要 $digest

javascript - N个异步线程的互斥

javascript - boolean 代数 - 如何化简