如何获得最接近的表格形式使用给ajaxForm
问题描述:
通过jQuery提交后,我有这样的结构如何获得最接近的表格形式使用给ajaxForm
<table> <tr><td><form> .........<input type="submit"/> </form> </td></tr></table>
我使用jquery这样
var options = {
target: '.ajaxMessage', // target element(s) to be updated with server response
// beforeSubmit: showRequest,
dataType: 'json', // pre-submit callback
success: function(data){ myResponse(data)},
cache: false,
delegation: true,
type: 'POST' };
$(".r_form").ajaxForm(options);
一切都通过AJAX提交表单的形式工作罚款,但成功后,我想附加行到最近的表格提交表单。
我不知道该怎么做this
点,当我在myresponse使用()函数成功
答
假设你有以下标记:
<table>
<tr>
<td>
<form class="r_form" method="post" action="...">
<input type="submit"/>
</form>
<div class="ajaxMessage"></div>
</td>
<td>
<form class="r_form" method="post" action="...">
<input type="submit"/>
</form>
<div class="ajaxMessage"></div>
</td>
...
</tr>
</table>
,你可以在你的document.ready处理程序这样做是为了AJAXify这些形式:
var options = {
success: function(data, statusText, xhr, form) {
var ajaxMessage = $(form).closest('td').find('.ajaxMessage');
ajaxMessage.html(data);
}
};
$('.r_form').ajaxForm(options);
正如documentation的第四个参数解释success
回调将表示相应的表单DOM元素,它可以用于查找包含<td>
(或<tr>
,具体取决于ajaxMessage元素位于何处)以及来自那里发现.ajaxMessage
div被更新。
+0
检查这个小提琴控制台感谢哥们,完美的工作。 – user825904
答
一些伪代码,应该让你在正确的轨道上后:
$('input:submit').click(function(e){
var $target = $(e.target);
var $closestTable = $target.closest('table');
$closestTable.append('<tr><td>blah</td></tr>'); //this line could be added to the success handler
});
答
“的这所有回调中的引用是在设置中传递给$ .ajax的上下文选项中的对象;如果未指定上下文,则这是对Ajax设置本身的引用。
来源:http://api.jquery.com/jQuery.ajax/
好像你可以通过它通过context
触发Ajax调用的对象,然后用.closest('table')
得到你想要的表。
在这种情况下,'this'指的是ajax响应,也就是'data'。您是否在点击事件中拥有此代码? – Johan
yes点击按钮 – user825904
看看我的回答 – Johan