2

下面的代码应该根据是否选中一个框来使文本框出现/消失(页面加载时文本框被隐藏)。所有警报都正常触发,但是我无法使复选框.show()正常工作。

这是jQuery。这来自document.ready函数内部。您可以从我对我尝试过的其他两种方法的注释中看出(均未奏效)。

    $('#OverrideRegionInd').click(function () {
        alert($(this).is(':checked'));
        if ($(this).is(':checked')) {
            alert("inside if");
            $('#Region').show();
            //$('#Region').css("display", "inline");
            // $('#Region').toggle();
            $('#territoryName').html("");
            $('#Region').val("");

        } else {
            alert("inside else");
            $('#Region').hide();
            //$('#Region').css("display", "none");
            // $('#Region').toggle();
        }
    });

这是视图中的代码

    <div class="M-editor-label">
        @Html.LabelFor(model => model.Region)
    </div>
    <div class="M-editor-field" id="territoryName">
        @Html.TextBoxFor(model => model.Region, new { style = "display: none;" })
        @Html.ValidationMessageFor(model => model.Region)
    </div>

<div>这是为这组特定的's呈现页面后的 HTML

    <div class="M-editor-label">
        <label for="Region">Territory</label>
    </div>
    <div class="M-editor-field" id="territoryName">
        <input id="Region" name="Region" style="display: none;" type="text" value="" />
        <span class="field-validation-valid" data-valmsg-for="Region" data-valmsg-replace="true"></span>
    </div>
4

1 回答 1

1

那是因为你正在设置:

$('#territoryName').html("");

那是 的父级#Region,您正在使用该行有效地删除#Region元素。把它拿出来,它会正常工作的。

演示

于 2013-04-30T22:37:43.560 回答