【发布时间】:2011-10-15 07:55:30
【问题描述】:
这应该很容易,但我尝试了一些没有运气的事情。
我在一个页面上有一系列Html.TextBoxFor 字段,每个字段都包含在自己的Ajax.BeginRouteForm 中。在每个框旁边我都有一个提交按钮,单击此按钮后,将根据需要执行 Ajax 更新。
我想自动执行此操作,以便当用户更改字段中的值(onchange 事件)时,表单的提交方式与当前使用提交按钮的方式相同。
我尝试使用 htmlattributes 将 JavaScript 函数分配给 onchange 事件(如下所示),这会导致表单提交,但它会重定向页面而不是以 ajax 方式工作(而不是单击提交按钮正常工作)。
@(Html.TextBoxFor(model => answer.Value, new { onchange = "document.forms[" + answer.AnswerID + "].submit()" }));
(幸运的是,我的 answer.AnswerID 是数字,并且与表单集合中相应表单的数字位置相匹配;我按名称引用它们,但 Razor(或其他东西)正在对我的 JavaScript 代码进行 htmlencoding...)
我唯一的猜测是我通过将代码直接附加到onchange 事件来破坏某些东西,但我不知道挂钩到该事件链的“正确”方式。
【问题讨论】:
标签: javascript asp.net-mvc-3 razor asp.net-ajax