[英]Ajax.BeginForm(), OnSuccess - get event target
我無法獲得在Ajax.BeginForm()
觸發OnSuccess()
方法的元素的目標。 所以這是代碼片段:
@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/>
問題:
如何獲得目標?! 謝謝
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)
}
})
如果要訪問表單元素,則有很多選項,如果頁面上只有一個表單,則可以執行$("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>
}
並在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/>
在簡單的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")
...
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.