首页 > 解决方案 > Jquery 已安装,为什么我的 ajax 不是函数?

问题描述

需要一点背景来解释这一点:

我有一个旧的 rails 2 应用程序,它有一个模态表单。当我提交此表单时,它应该更新数据库并关闭模式。生成的表格看起来像这样..


> <form action="/assignments/doattendance/767107" id="modalForm_767107"
> method="post" onsubmit="jQuery('.modal-backdrop').fadeOut(200,
> function(){jQuery(this).remove();});; new
> Ajax.Updater('Assignment_767107', '/assignments/doattendance/767107',
> {asynchronous:true, evalScripts:true,
> parameters:Form.serialize(this)}); return false;">

如果您仔细观察,您会在此表单上看到一个原型 Ajax 调用。remote_form_for这是由erb 文件中的 rails 调用生成的。现在。由于“原因”,我不能在显示此表单的第二页上使用 remote_form_for,并且需要使用<form id="monthForm>标签在 Rails 之外正常构建表单。但我需要这个原型 Ajax。我安装了 jQuery,它正在网站上运行。所以...

我有一些原型代码需要转换为 jquery。但我一直遇到“.ajax 不是函数”错误...

原型代码:


> new Ajax.Updater('Assignment_767107',
> '/assignments/doattendance/767107', {asynchronous:true,
> evalScripts:true, parameters:Form.serialize(this)});

  1. 如何将上面的原型代码转换为我的表单的 JQUERY?

我在这里读过一个类似的问题......

Jquery 中的 Ajax.updater 等价物是什么?

...关于 StackOverflow 上的这个主题,并根据该答案构建了这个...

jQuery('#monthForm').submit(function(event){
                        event.preventDefault();

                        jQuery.ajax({
                            url: '/assignments/doattendance/'+myValue.id,
                            type: "post",
                            dataType: "html",
                            data: {"Form.serialize(this)" : "Assignment_"+myValue.id},
                            success: function(returnData){
                                jQuery("#Assignment_767107").html(returnData);
                            },
                            error: function(e){
                                alert(e);
                            }
                        })
                    })

同样,ajax 应该附加到的表单是这个......

<form id="monthForm">
...
</form>

但是......我一直一无所获,我做错了什么?

标签: javascriptjqueryruby-on-railsajax

解决方案


ajaxjQuery对象本身的方法,而不是它的实例。

你需要jQuery.ajax()而不是jQuery('#monthForm').ajax()


推荐阅读