Javascript 在ASP.NET MVC中使用标志变量显示/隐藏元素
我有一个如图所示的表单,它有一个下拉列表、两个div和两个按钮,根据每次页面加载(初始加载和数据检索后等)的某些情况显示/隐藏。另一方面,我在控制器中使用一个名为Javascript 在ASP.NET MVC中使用标志变量显示/隐藏元素,javascript,c#,jquery,asp.net,asp.net-mvc,Javascript,C#,Jquery,Asp.net,Asp.net Mvc,我有一个如图所示的表单,它有一个下拉列表、两个div和两个按钮,根据每次页面加载(初始加载和数据检索后等)的某些情况显示/隐藏。另一方面,我在控制器中使用一个名为hasValue的变量,并根据每种情况在控制器中设置该变量,并在razor视图中获得Ajax成功。然后在页面加载时,我将组件设置为可见隐藏,如下所示: 控制器: 查看: var hasValue=false; $(函数(){ //我在razor页面上设置通过Ajax从Controller检索到的hasValue属性,并在视图中随时使
hasValue
的变量,并根据每种情况在控制器中设置该变量,并在razor视图中获得Ajax成功。然后在页面加载时,我将组件设置为可见隐藏,如下所示:
控制器:
查看:
var hasValue=false;
$(函数(){
//我在razor页面上设置通过Ajax从Controller检索到的hasValue属性,并在视图中随时使用
切换字段(hasValue);
});
函数切换字段(参数){
$('#div1').css('display',!param?'block':'none');
$('#div2').css('display',param?'block':'none');
$('#btn1').css('display',param?'block':'none');
$('#btn2').css('display',!param?'block':'none');
}
我的问题是。在某些情况下,单变量hasValue
是不够的。在这种情况下,除了上述每个字段中的hasValue
变量之外,我是否应该使用额外的参数
我不确定是否有更好的方法或优雅的解决方案来解决这种情况
任何帮助都将不胜感激 我想杰克的意思是
function toggleField(param) {
$('#div1').toggle(param);
$('#div2').css('display', param ? 'block' : 'none');
$('#btn1').css('display', param ? 'block' : 'none');
$('#btn2').css('display', !param ? 'block' : 'none');
}
图像名称与代码不匹配对它没有帮助
如果您需要VAR,请使用两个。这没什么错。让它工作起来,然后改进 强烈建议执行
$(“#btn save”)。在(“单击”,函数(e){e.preventDefault();toggleField(false)}
@mplungjan抱歉,我添加了变量和必要的解释。谢谢。@mplungjan hasvalue也请执行$('#div1')。切换(param)
和$('#div2')。切换(!param)
而不是像那样更改CSS,但我应该在何时何地调用$('#div1')。切换(param)
?
<a id="btn-save" href="javascript:toggleField(false);"> Save </a>
<script>
var hasValue = false;
$(function () {
//I set hasValue property retrieved from Controller via Ajax on the razor page load and use whenever I need in the View
toggleField(hasValue);
});
function toggleField(param) {
$('#div1').css('display', !param ? 'block' : 'none');
$('#div2').css('display', param ? 'block' : 'none');
$('#btn1').css('display', param ? 'block' : 'none');
$('#btn2').css('display', !param ? 'block' : 'none');
}
</script>
function toggleField(param) {
$('#div1').toggle(param);
$('#div2').css('display', param ? 'block' : 'none');
$('#btn1').css('display', param ? 'block' : 'none');
$('#btn2').css('display', !param ? 'block' : 'none');
}