jQuery .show()方法在.click函数中不起作用

本文关键字:click 函数 不起作用 方法 show jQuery | 更新日期: 2023-09-27 18:11:40

下面的代码应该使一个文本框出现/消失基于是否选中一个框(文本框隐藏时,页面加载)。所有警报都正常发射,但是我无法获得.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>

渲染后的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>

jQuery .show()方法在.click函数中不起作用

这是因为你设置了:

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

这是#Region的父元素,您可以有效地删除#Region元素。把它拿出来就行了。

演示