使用ajaxform()在页面中提交多表单

时间:2009-08-08 08:54:18

标签: javascript jquery ajax jquery-plugins

如何使用ajaxform插件获取当前提交表单的父div ID
我对成功状态没有任何问题

谢谢。

下面是我的代码。

<script type="text/javascript" charset="utf-8">
$('.formsubmit').ajaxForm( { 

    beforeSubmit: function() {
        // here want form parent div display loading..
        var id = $(this).parent().id; // my problem here how to get current action form parent div id 
        $('div#'+id).html("Loading...");
    },
    url: '/post.php',
    success: Response,
    datatype: ($.browser.msie) ? "text" : "xml"
});
function Response(xml) {
    // let say XML return is equal 1
    var id = xml;
    $('div#'+id).html("Success");
}
</script>

<html>
<body>
<div id="1">
    <form class='formsubmit' action='/post.php' method='post'>
        <input name='url' value='stackoverflow.com'>
    </form>
</div>
<div id="2">
    <form class='formsubmit' action='/post.php' method='post'>
        <input name='url' value='jquery.com'>
    </form>
</div>
<div id="3">
    <form class='formsubmit' action='/post.php' method='post'>
        <input name='url' value='google.com'>
    </form>
</div>
</body>
</html>

1 个答案:

答案 0 :(得分:3)

从我在docs中看到的内容,beforeSubmit方法调用了三个参数:

  • 数组格式的表单数据
  • 表单
  • 的jQuery对象
  • 传递给ajaxForm / ajaxSubmit
  • 的选项对象

如果您在提交之前将其更改为

beforeSubmit: function(formData, formObj, options) {
    var id = formObj.parent().attr('id');
    $('div#'+id).html("Loading...");
}

虽然我没有测试过,但这应该可行。