我有一个动态生成的网格,其中包含x个文本框。在生成每个文本框时,我给它一个OnChange事件,它是一个set函数。
Html.TextBox(... new { @onchange = "ChangeItemQuantity(" + vm.ID + ", " + fk.id + ")" ...
因此,当它被渲染时,它看起来像这样:
<input ... type="text" onchange="ChangeItemQuantity(1939, 3)" />
然后,在脚本部分:
function ChangeItemQuantity(ItemId, ForeignKeyId) {
...
}
在ChangeItemQuantity()函数中,我如何捕获文本框的新值?我真的不想在文本框上使用id,因为它是包含许多文本框的网格的一部分。
我应该将其作为参数传递吗?如果是这样,呈现文本框的代码的语法是什么?
或者,有没有办法在javascript函数内捕获?
谢谢!
答案 0 :(得分:1)
如果要在html元素中存储数据,为什么不使用数据属性?
像这样设置
@Html.TextBox(.... new { @class="someClass" data-vmId="vm.ID", data-fkId="fk.id" })
然后在该类上设置一个监听器
$('.someClass').change(function() {
var value = $(this).val();
var vmid = $(this).data('vmid');
var fkid = $(this).data('fkid');
}