我已经看过各种各样的策略,而我尝试的那个策略失败了(.load)。
我默认加载页面时隐藏了几个文本框及其标签。
但是,如果viewmodel代表公司 - 公司=" true"然后我想要显示这些文本框,并且要更改一些标签,因为这是公司记录而不是私人客户记录。
我在创建客户端时使用了与本页相同的页面:
$(document).ready(function () {
if ($('#Company').length) // Check for ID
{
$(window).load(function () {
$("#Company").click(function () {
if ($(this).is(':checked')) {
$("#FirstNameLabel").html('Contact First Name:');
$("#LastNameLabel").html('Contact Last Name:');
$("#phoneLabel").html('Company Phone:');
$("#details").html('<strong>Company Details</strong>');
$("#bankDetails").html('<strong>Company Bank Details</strong>');
$("#hideOption").removeAttr("hidden");
} else {
$("#FirstNameLabel").html('First Name:');
$("#LastNameLabel").html('Last Name:');
$("#phoneLabel").html('Home Phone:');
$("#details").html('<strong>Client Personal Details</strong>');
$("#bankDetails").html('<strong>Client Bank Details</strong>');
$("#hideOption").attr("hidden", "hidden");
}
});
});
};
});
因此,单击“公司”复选框,会更改多个标签,并显示这两个文本框。再次单击它们,它们还原。当你开始使用空白页面时这很好,但这是编辑页面,我正在预加载数据。在公司的情况下,我需要显示文本框和要更改的标签..
您可能已经注意到我尝试使用$(window).load
,但它无效。
此外,此代码位于wwwroot下的site.js文件中而不在页面上,因此我使用$('#Company').length)
检查ID是否首先存在...
如何在加载时在页面上运行此脚本?
它应该运行,如果选中公司复选框,则显示文本框并更改标签。
答案 0 :(得分:0)
您可以在复选框控件中放置一个类名,并且可以使用以下更改功能,也可以在检查中应用您的代码集(if-else)。
<input type="checkbox" class="className" name="Country" value="Country"> Country<br>
$(".className").change(function () {
if (this.checked) {
//Put your code here
}
else{
//Put your code here
}
});
希望您的问题能够通过以下代码解决: - )