我有一个ASP。Net Core web表单,包含许多组可以隐藏或显示的输入项,具体取决于用户输入并存储在数据库中的值。
这是一个回调函数,每当用户更改下拉菜单中的值时,它都会“显示”或“隐藏”子菜单,效果很好:
$('#DW_Answers_Q430').change(function (e) {
let a = $('#DW_Answers_Q430').val();
if (a == "None")
$('#DW_Q430_grp').css('display','none');
else $('#DW_Q430_grp').css('display','block');
});
Q: 当加载“编辑”菜单时,我如何调用此回调,以确保子菜单正确显示或隐藏,具体取决于从数据库加载的值?
这是我尝试过的:
编辑.cshtml:
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
<script type="text/javascript">
window.onload = function () {
...
dw_refresh();
...
};
</script>
}
site.js:
function dw_refresh() {
console.log('dw_refresh()...');
...
var a = $('#D_Answers_Q430').val();
$('#DW_Answers_Q430').val(a).change();
...
Q: 我如何调用我的回调,以确保在首次加载“编辑”页面时正确显示子菜单?
解决方案:
-
删除dw_refresh()
-
替代品
bind('load change')
:
$('#DWare_Answers_Q430').bind('load change', function () {
let a = $('#DW_Answers_Q430').val();
console.log('DW_Answers_Q430, val:', a);
if (a == "None")
$('#DW_Q430_grp').css('display','none');
else $('#DW_Q430_grp').css('display','block');
});