Cri*_* E. 6 c# ajax.beginform asp.net-mvc-3
我无法获得触发OnSuccess()方法的元素的目标Ajax.BeginForm().所以这是代码片段:
@using (Ajax.BeginForm("InsertModel", "Home", new AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "doWork(this,'SomeCustomText')"
}))
{
<div id="container">
<--Some HTML--!>
<input type="submit" value="OK"/>
</div>
}
<script>
function doWork(e,customText)
{
alert(customText); //It shows 'SomeCustomText', so its good.
alert(e); //[Object] object
alert(e.prop("tagName")); //Object #<Object> has no method 'prop'
alert(e.attr("tagName")); //Object #<Object> has no method 'attr'
alert(jQuery(e).html()); //undefined
alert(jQuery(e).prop("tagName")); //undefined
alert(e.target); //undefined
alert(jQuery(e).target); //undefined
}
<script/>
Run Code Online (Sandbox Code Playgroud)
问题:
如何获得目标?!谢谢
jQuery版本应该如下所示:
jQuery.ajax({
url:"/Home/InsertModel",
data:"some post data",
type:"POST",
success:function(data){
doWork(this,data); // so i really do not care about data! I just need jQuery(this)
}
})
Run Code Online (Sandbox Code Playgroud)
如果你想访问表单元素,你有很多选择,如果页面上只有一个表单,你可以这样做$("form"),jquery 会给你表单元素。
另一种选择是更改 Ajax.BeginForm 构造函数,该构造函数将表单 id 作为参数,如下所示:
@using (Ajax.BeginForm("InsertModel", "Home",null, new AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "doWork('SomeCustomText')"
}, new {id = "myFormId"}))
{
<div id="container">
<--Some HTML--!>
<input type="submit" value="OK"/>
</div>
}
Run Code Online (Sandbox Code Playgroud)
在 javascript 中
<script>
function doWork(customText)
{
alert(customText); //It shows 'SomeCustomText', so its good.
// find the form by id
$("#myForm1");
// find forms in the page
$("form")
}
<script/>
Run Code Online (Sandbox Code Playgroud)
在普通的 JQuery 中:
$.ajax({
url:"/Home/InsertModel",
data:"some post data",
type:"POST",
success:function(data){
// find the form by id
$("#myForm1");
// find forms in the page
$("form")
...
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9018 次 |
| 最近记录: |