我正在尝试使用带有OnBegin&的表单dom元素。 Mvc。
中的Ajax.BeginForm帮助程序的OnComplete例程目前我有这个:
@using (Ajax.BeginForm("Contact", "Home", new AjaxOptions { OnBegin = "handleOnBegin" }))
但是在OnBegin / OnComplete处理程序中,我想使用表单dom元素 - 这是可能的吗?我已经检查了传递给那些处理程序的参数,但我什么也看不见。
function handleOnBegin(a, b){
var f = <get form>;
animateForm(f);
}
我甚至尝试用处理程序传递'this',但这似乎只是传递了XHR对象(或者类似的东西)......而且,我不愿意传递id并添加更多代码作为我我确信有一种更简单的方式。
答案 0 :(得分:6)
表单的ID作为Ajax.BeginForm的第4个参数:
@using (Ajax.BeginForm("Contact", "Home",
new AjaxOptions { OnBegin = "forms.onBegin", OnComplete = "forms.onComplete" },
new { id = "FormName" }))
然后您可以按ID(#FormName)选择表单。
编辑:
的答案答案 1 :(得分:1)
我也查看了这些论点,看不到任何有助于开箱即用的内容。另一个选项是向库中添加一个函数,该函数将向页面上的按钮添加onclick事件处理程序。像
这样的东西var clickedBtnID = null;
$(document).ready(function()) {
$(input[type=submit]).click(function() {
clickedBtnID = $(this).attr("id");
}
}
然后您可以从回调函数中访问clickedBtnID
。不是一个完美的解决方案,但它可能足够普遍。
答案 2 :(得分:0)
为要使用的DOM元素提供CSS类。所以你可以通过CSS类找到元素,即使表单是部分的,也可以嵌套在其他元素中。例如。
这样的事情:
$form.find(".labelToUpdate").text(response.labelText);