1

我对如何使用 jQuery.validate 插件访问提交的表单感到困惑。

在 API 选项的“成功”选项中:http: //jquery.malsup.com/form/#options-object

它说成功函数中的第 4 个参数是 jquery 包装的表单对象,但我尝试使用 jQuery 访问它时一直说它的undefined.

这是成功功能在他们的示例页面上的外观:http: //jquery.malsup.com/form/#ajaxSubmit

function showResponse(responseText, statusText, xhr, $form)  {
    var id=$form.attr('id');
    console.log('id:'+id);
}

不幸的是,console.log 说Uncaught TypeError: Cannot call method 'attr' of undefined.

有什么想法吗?

谢谢,蒂姆

4

2 回答 2

0

变量不能以$我想的开头。删除并重$试?

function showResponse(responseText, statusText, xhr, form)  {
    var id = form.attr('id');
    console.log('id:'+id);
}

或者这可能是另一种解决方案,如果不是 jQuery object

function showResponse(responseText, statusText, xhr, form)  {
    var id = $(form).attr('id');
    console.log('id:'+id);
}

其他可能性

function showResponse(responseText, statusText, xhr, form)  {
    var id = $(form).attr('id');
    console.log('id:'+id);
}
function showResponse(responseText, statusText, xhr, form)  {
    var id = form.attr('id');
    console.log('id:'+id);
}
function showResponse(responseText, statusText, xhr, $form)  { // Won't work
    var id = form.attr('id');
    console.log('id:'+id);
}
function showResponse(responseText, statusText, xhr, $form)  { // High chance
    var id = $($form).attr('id');
    console.log('id:'+id);
}

希望这可以帮助!:)

于 2012-06-08T04:15:17.687 回答
0

我通过每次显式写出 jQuery 表单选择器而不是尝试将其作为对象传递来解决了这个问题。

因此,我没有试图绕过,$form而是使用了这个:

$('#myForm').attr(...)

它更冗长,但至少它有效!

于 2012-07-21T14:12:12.377 回答