将静态javascript函数转换为动态函数
Convert a static javascript function to dynamic
在一个c# MVC项目中,前端设计师给了我一个视图,其中包含了这个小脚本:
<script>
$('#PhaseDD').change(function () {
var chosenValue = $(this).val();
$('.ProcessDD').hide();
if (chosenValue == "")
$('#DefaultProcess').show();
if (chosenValue == "Planning")
$('#PlanningProcess').show();
if (chosenValue == "Procurement")
$('#ProcurementProcess').show();
if (chosenValue == "Installation")
$('#InstallationProcess').show();
if (chosenValue == "Closure")
$('#ClosureProcess').show();
});
</script>
我想用来自模型的列表替换所有硬编码的选项。像这样…
<script>
$('#PhaseDD').change(function () {
var chosenValue = $(this).val();
$('.ProcessDD').hide();
if (chosenValue == "")
$('#DefaultProcess').show();
// loop over a list from the model here
if (chosenValue == " loop-item-name ")
$('# loop-item-name + Process').show();
// end loop
});
</script>
这可能吗?如果有,怎么做?我这样做对吗?我想我可以使用razor语法,但这是不工作
你不能比较c#变量和JS变量。但是你可以用razor从c#变量中创建一个JS变量。
下面是如何用c#数组的值来填充JS数组:@{
// fetch this from ViewModel if it needs to be dynamic
var cSharpNames = new [] { "Planning", "Procurement"};
}
<script>
var jsNames = []; // this is a JS array
@foreach(var name in cSharpNames) {
<text>jsNames.push(@name);</text>
}
</script>
然后使用indexOf()
方法在jsNames数组中搜索,如Jeremy所示。
我将创建一个数组,检查该值是否存在于其中,以及它是否显示它。像这样:
<script>
$('#PhaseDD').change(function () {
var chosenValue = $(this).val();
var processes = ['Planning', 'Procurement'];
$('.ProcessDD').hide();
if (chosenValue == "")
$('#DefaultProcess').show();
if (processes.indexOf(chosenValue) > -1)
$('#' + chosenValue + 'Process').show();
});
</script>
我想太多了。
$('#PhaseDD').change(function () {
var chosenValue = $(this).val();
$('.ProcessDD').hide();
if (chosenValue == "")
{
$('#DefaultProcess').show();
}
else
{
$('#' + chosenValue + 'Process').show();
}
});
相关文章:
- 将jquery函数动态应用于添加的元素
- 在剑道网格中,我可以用一个函数动态设置列属性吗
- JQuery将字符串识别为函数动态回调
- 如何将变量与函数动态绑定
- 如何将函数动态附加到对象
- 如何通过函数动态更改文档标题
- 将泛型函数动态关联到对象属性时的作用域.(模块模式)
- 如何使用 javascript 中的替换函数动态替换图片 src
- 如何为每个函数动态绑定“this”
- 为带变量的函数动态添加事件侦听器
- 尝试使用 jQuery - 自定义函数动态验证字段
- 使用 onclick 函数动态添加表行
- 如何使用函数动态定义javascript事件处理程序
- 通过Javascript函数动态创建一个表并向表中添加单元格
- Javascript调用函数-动态变量名
- 使用javascript函数动态更新PayPal货币和金额字段
- 如何使用模型中的函数表达式将函数动态绑定到ng-click
- 你能给函数动态添加局部变量吗
- Javascript使用一个函数动态计算多行
- 如何在选择值作为另一个选择的函数动态加载时不使用ctrl键选择多个值