繁体   English   中英

jquery.validate插件在ajax成功回调中访问表单

[英]jquery.validate plugin accessing the form in ajax success callback

我对如何使用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.

有什么想法吗?

谢谢,蒂姆

该变量不能以$开头。 删除$然后重试?

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);
}

希望这可以帮助! :)

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

因此,我没有尝试传递$form而是使用了以下方法:

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

它比较冗长,但至少可以正常工作!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM