javascript - 注册 razor @Html.HiddenFor 的 onchange 事件

标签 javascript jquery asp.net-mvc-4 razor

我正在使用 asp.net mvc 4、jquery 和 razor。我认为以下是 Razor 声明:

@Html.HiddenFor(m => m.MyItemViewModel.id);

当它的值发生变化时,我需要调用 jquery/javascript 函数。所以我想过将 jquery/javascript 函数订阅到 HiddenFor razor 标签的 onchange 事件,但我不知道是否可行。

我已经实现了下面的代码,但它似乎不起作用,因为未达到 OnHiddenValueChanged:

@Html.HiddenFor(m => m.ItemCompViewModel.id, new { onchange="OnHiddenValueChanged" });

<script>
    function OnHiddenValueChanged() {
    }
</script>

或者更好的是,如何从 View 中检测 m.ItemCompViewModel.id (我的 View 模型的项目)何时发生更改,然后调用 jquery/javascript 函数?

有什么想法吗?

最佳答案

您似乎正在尝试订阅 onchange 客户端函数,以获取在服务器上生成且仅在服务器上更改的值。所以这个客户端函数永远不会被触发是正常的。实际上,您从未使用过任何 JavaScript 来更改隐藏字段的值,因此您不能期望引发此回调。

如果您要修改服务器上的值,则由服务器来告诉客户端该值已更改。例如,您的 View 模型上可以有一些附加属性,表明该值已更改(无论这在您的上下文中意味着什么 - 因为已更改。必须始终与某些先前的状态进行比较)。然后在客户端上,您可以将此属性序列化为 JavaScript 变量,以便客户端了解服务器上发生的更改。

关于javascript - 注册 razor @Html.HiddenFor 的 onchange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19518551/

相关文章:

asp.net-mvc - 将 CSS 添加到 View 或部分 View

javascript - 类型错误 : readonly assignment error with React application in Safari

javascript - 防止按下回车键时重新加载页面

javascript - 如何在 .each 迭代中将 .delay 添加到 .click (jquery)

javascript - jQuery puff 效果在应用效果后返回 Div?

c# - Html.dropdownlist 不显示下拉字段中的默认/选定值

c# - 如果不可用,请预先附加路由

javascript - 如何在 Jquery UI 对话框中添加多个按钮?

php - $_SESSION 的问题是 jQuery

javascript - 如何使图像高度适合模态 div