Ниже приведен код, который должен отображать/исчезать текстовое поле в зависимости от того, установлен ли флажок (текстовое поле скрыто при загрузке страницы). Все предупреждения срабатывают правильно, однако я не могу установить флажок для функции .show()
.jQuery .show() метод не работает внутри .click function
Это 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>
Вот это HTML когда страница отображается для данного набора <div>
«s
<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>
лишь головы вверх, вы можете сделать то же самое с 'если (this.checked)' ... способ меньше накладных расходов, чем '$ (это) .а (': проверено')'. – PlantTheIdea
У вас есть несколько элементов с одним и тем же идентификатором? – epascarello
только хэдз-ап, вы можете сделать '$ ('# Region'). Toggle (this.checked)' без условия if/else, а тем более накладные расходы? – adeneo