【发布时间】:2014-10-05 21:35:02
【问题描述】:
从“更新”开始阅读
我有一个 JavaScript 函数:
<script type="text/javascript">
function getAmount(AdminFee, TimeAndMatRate, TimeSpent, MinimumCharge) {
var amount = math.Round(AdminFee + TimeAndMatRate * TimeSpent);
if (amount < MinimumCharge) {
amount = math.Round(MinimumCharge);
}
document.getElementById('amount').innerHTML = amount;
}
</script>
当我更改另一个值时,我必须更改以下字段:
<span id="amount"></span>
当我更改此 文本框 中的值时,应更新上述字段:
@Html.TextBoxFor(model => model.TimeAndMaterialsRate, new { onkeyup = "getAmount()" })
只要我不尝试在getAmount() 中发送任何参数,此代码就可以正常工作,但我似乎无法弄清楚如何让它工作,有人可以帮我吗?
这是我尝试过的事情之一
new { onkeyup = "getAmount("
+ @Model.AdminFee + ","
+ @Model.TimeAndMaterialsRate + ","
+ @Model.TotalTimeSpent.Hours + ","
+ @Model.MinimumCharge + ")"
}
我也试过上面没有'@'s
更新:
上面的代码现在可以工作了,虽然这个功能似乎不能正常工作。
<script type="text/javascript">
function getAmount(AdminFee, TimeAndMatRate, TimeSpent, MinimumCharge) {
var amount = math.Round(AdminFee + TimeAndMatRate * TimeSpent);
if (amount < MinimumCharge) {
amount = math.Round(MinimumCharge);
}
document.getElementById('amount').innerHTML = amount;
}
</script>
传入函数的值为id、id、double、id。关于为什么这不起作用的任何线索?
【问题讨论】:
-
Razor 代码在发送到视图之前在服务器上进行解析,因此您所做的只是运行相同的计算并在每个 keyup 事件上输出相同的结果 - 您永远不会使用 @987654332 的值@ 表示用户已输入!。你应该学会使用Unobtrusive_JavaScript
标签: javascript c# html asp.net-mvc model-view-controller