У меня есть скрипт, который делает div видимым или скрытым, когда я устанавливаю флажок (работает отлично). Например: продукт имеет скидку , проверьте -> показать div, чтобы ввести цену со скидкой.
При загрузке страницы сведений флажок устанавливается / снимается в соответствии со свойством «isAvailable». Когда этот флажок установлен по умолчанию, он не показывает div! Если вы дважды не нажмете на флажок и не отметите его вручную.
Это мой сценарий:
$("#DiscountCheckbox").change(function () {
if ($(this).is(':checked')) {
document.getElementById("percentageDiv").style.visibility = "visible";
$("#percentageDiv").fadeIn(200);
}
else {
$("#percentageDiv").fadeOut(200);
document.getElementById("percentageDiv").style.visibility = "hidden";
}
});
Это HTML:
<div class="form-group">
@Html.CheckBoxFor(p => p.Product.Price.IsActive, new { @class = "filled-in", id = "DiscountCheckbox" })
<label for="DiscountCheckbox" title="Add a discount to this product">add discount</label>
</div>
<!-- div that is visible/hidden -->
<div class="form-group" id="percentageDiv">
<label class="control-label" for="txtboxCustomerRef">Discount name:</label>
@Html.TextBoxFor(p => p.Discount.DiscountName, new { placeholder = "enter discount name", @class = "form-control", id = "DiscountName", title = "Enter a name for this discount" })
</div>
Я пытался сделать это в документе готовым, но у меня не получилось, может быть, я не правильно сделал:
$(function () {
if ($("#DiscountCheckbox").is(':checked')) {
document.getElementById("percentageDiv").style.visibility = "visible";
$("#percentageDiv").fadeIn(200);
}
else {
$("#percentageDiv").fadeOut(200);
document.getElementById("percentageDiv").style.visibility = "hidden";
}
});