jquery.form.js - 如何在提交时获取当前表单?

12 浏览
0 Comments

jquery.form.js - 如何在提交时获取当前表单?

我有这段标记代码\n

...
...
...

\n还有这段JavaScript代码\n

$('.foo').ajaxForm({
    dataType: 'json',
    success: function (data) {
       // TODO: How do I get the form that triggered this?
       console.log( $(this) );
    }
});

\n正如你在JavaScript代码中看到的,我想在提交并成功后获取当前的表单元素。输出$(this)没有显示任何指向当前表单元素的内容。\n如何在成功函数内部获取当前的表单元素?

0
0 Comments

问题的出现原因是在使用jquery.form.js插件中,当使用ajaxForm方法提交表单时,无法直接获取当前提交的表单。解决方法是通过beforeSubmit回调函数,在回调函数中将当前表单赋值给options对象的context属性,然后在其他回调函数中通过$(this)来获取当前表单。具体的解决方法如下:

beforeSubmit: function(arr, $form, options){
    options.context = $form;
},
success: function (data) {
    // TODO: How do I get the form that triggered this?
    console.log( $(this) );
}

以上代码中,通过在ajaxForm方法的配置对象中添加beforeSubmit回调函数,将当前表单赋值给options对象的context属性。然后在success回调函数中,通过$(this)来获取当前表单,从而解决了无法获取当前表单的问题。

通过以上方法,我们可以在使用jquery.form.js插件提交表单时,获取到当前提交的表单,从而进行相应的操作。

0
0 Comments

问题:jquery.form.js - 如何在提交时获取当前表单?

原因:在使用jquery.form.js插件时,需要获取当前表单对象,但是插件本身没有提供直接获取当前表单的方法。

解决方法:可以使用context参数将当前表单(this)传递给成功函数。

示例代码:

$('#form').ajaxForm({
    success: function(responseText, statusText, xhr, $form) {
        // 在这里可以通过$form获取当前表单对象
    },
    context: document.getElementById('form')
});

相关链接:

- [$.ajax context option](https://stackoverflow.com/questions/5097191)

- [How to pass Object context to jQuery.ajax JSONP callback?](https://stackoverflow.com/questions/3399997)

0
0 Comments

问题的出现的原因是用户想要在使用jQuery Form插件时,获取当前表单的信息。解决方法是使用success回调函数的第四个参数,即form参数。以下是解决方法的代码示例:

success: function(data, statusText, xhr, form) {
    // 在这里可以使用form变量来获取当前表单的信息
    // ...
}

更多关于success回调函数的信息可以参考jQuery Form插件的文档,具体链接如下:

[http://malsup.com/jquery/form/#options-object](http://malsup.com/jquery/form/#options-object)

0