Javascript 当MVC3 Html.textbox的内容发生更改时提交表单
这应该是相当容易的,但我已经尝试了一些事情没有运气 我在一个页面上有一系列的Javascript 当MVC3 Html.textbox的内容发生更改时提交表单,javascript,asp.net-mvc-3,razor,asp.net-ajax,Javascript,Asp.net Mvc 3,Razor,Asp.net Ajax,这应该是相当容易的,但我已经尝试了一些事情没有运气 我在一个页面上有一系列的Html.TextBoxFor字段,每个字段都在自己的Ajax.BeginRouteForm中。在每个框旁边,我都有一个提交按钮,单击该按钮时,会根据需要执行Ajax更新 我希望自动执行此操作,以便当用户更改字段中的值时(更改onchange事件),表单的提交方式与当前使用的提交按钮相同 我尝试使用htmlattributes为onchange事件分配一个JavaScript函数(如下所示),这会导致表单提交,但它会重定
Html.TextBoxFor
字段,每个字段都在自己的Ajax.BeginRouteForm
中。在每个框旁边,我都有一个提交按钮,单击该按钮时,会根据需要执行Ajax更新
我希望自动执行此操作,以便当用户更改字段中的值时(更改onchange
事件),表单的提交方式与当前使用的提交按钮相同
我尝试使用htmlattributes为onchange
事件分配一个JavaScript函数(如下所示),这会导致表单提交,但它会重定向页面,而不是以ajax方式工作(而不是单击正常工作的提交按钮)
(幸运的是,我的answer.AnswerID
是数字的,并且与表单集合中相应表单的数字位置相匹配;我是按名称引用它们的,但Razor(或其他东西)是对我的JavaScript代码进行htmlencoding…)
我唯一的猜测是,通过将代码直接附加到
onchange
事件,我正在破坏某些东西,但我不知道如何“正确”地连接到该事件链中 如果您愿意使用JQuery,它非常简单:
在表单上调用submit()
将忽略任何submit
事件处理程序。你也可以
如果使用
onsubmit
并返回false
而不是使用event
参数进行回调,则前者效果最好,因为否则需要传递另一个凌乱的对象或其他东西。请随意详细说明:)
@(Html.TextBoxFor(model => answer.Value, new { onchange = "document.forms[" + answer.AnswerID + "].submit()" }));