【问题标题】:If radio is checked show a div in asp.net mvc and jquery如果选中收音机,则在 asp.net mvc 和 jquery 中显示一个 div
【发布时间】:2014-06-03 14:31:33
【问题描述】:

我正在尝试使其在部分视图加载时隐藏某个 div,并在选择单选按钮时显示。这是我使用的 jquery

<script>
$("input[name='JointOwner']").click(function () {
    if ($(this).val() == "1") {
        $("#JointApplicantInfo").show();
    } else {
        $("#JointApplicantInfo").hide();
    }
});
</script>

当表单加载时显示 div 并且当我选择 == 1 的相应按钮时,它会隐藏 div 并且不会将其带回来。

这就是我的表单的样子

<div class="form-group">
    @Html.LabelFor(m => m.JointOwner, new { @class = "col-md-3 control-label" })
    <div class="col-md-9">
        <label>@Html.RadioButtonFor(m => m.JointOwner, new { @class = "form-control", value="1"})&nbsp;Yes</label>
        <label>@Html.RadioButtonFor(m => m.JointOwner, new { @class = "form-control", value = "0" })&nbsp;No</label>
        @Html.ValidationMessageFor(m => m.JointOwner)
    </div>
</div>

//Joint Applicant
<div id="JointApplicantInfo">
    <div class="form-group">
        @Html.LabelFor(m => m.JointFirstName, new { @class = "col-md-3 control-label" })
        <div class="col-md-9">
            @Html.TextBoxFor(m => m.JointFirstName, new { @class = "form-control" })
            @Html.ValidationMessageFor(m => m.JointFirstName)
        </div>
    </div>

【问题讨论】:

  • 无论如何我都不是 JavaScript 专家,但我的猜测是 $(this).val() == "1" 总是评估为假,所以它总是落入隐藏 div 的分支。您可以通过向两个分支添加对 alert() 的调用并查看执行哪个分支来轻松测试。

标签: jquery asp.net asp.net-mvc


【解决方案1】:
<script>
$("#JointApplicantInfo").hide();

$("input[name='JointOwner']").change(function () {
    $("#JointApplicantInfo").toggle();
});
</script>

在 CSS 中默认隐藏 JointApplicantInfo div...

#JointApplicantInfo {
    display: none;
}

【讨论】:

  • 我需要在加载时隐藏 div。当我选择“1”值时,这导致我的 div 隐藏
  • 如果是这种情况,我已经更新了我的代码,不过你最好把它隐藏在 CSS 中。
  • 只需将其设置为display: none; - 已更新答案。
猜你喜欢
  • 1970-01-01
  • 2015-10-15
  • 1970-01-01
  • 1970-01-01
  • 2019-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
相关资源
最近更新 更多