根据HtmlRadioButtonFor中的值隐藏/显示输入字段,并在显示时强制显示

时间:2017-09-12 16:14:24

标签: javascript jquery html asp.net-mvc razor

我有一个场景,我有两个不同的div,后者应该根据早期div的布尔值消失。如果radiobutton值为真,则后面的div应为必填项。

实际代码:

<div class= row ">
<div class="row col-lg-offset-2 top-buffer">
    <h4><strong><span>Is Employment Offered?</span> <span class="text-danger">*</span></strong></h4>
        @Html.RadioButtonFor(model => model.IsOffered, true) @Html.Label("Yes")
        @Html.RadioButtonFor(model => model.IsOffered, false) @Html.Label("No")
        <br>
</div>
<div class="row col-lg-offset-2 top-buffer" id="employeeNumber">
    <div class="col-sm-2"><b>Enter Employee Number</b></div>
        <div class="col-sm-10">
                @Html.TextBoxFor(model => model.EmployeeNumber, new { @class = "form-control" })
            <br />
        </div>
    </div>
</div>

<script>
$("#employeeNumber").hide();
$("input[name='IsOffered']").on("change", function() {
    if ($(this).val() == "true") {
        $("#employeeNumber").show();
    }
});

我在上面试过,但没有运气。谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

将其更改为"True"

$("#employeeNumber").hide();
$("input[name='IsOffered']").on("change", function () {
    if ($(this).val() === "True") {
        $("#employeeNumber").show();
    } else {
        $("#employeeNumber").hide();
    }
});

由于Boolean.ToString()重新调整"True"而不是"true"。因此,此值将添加到由razor生成的radio

Why?