【问题标题】:$(this).ajaxSubmit is not a function$(this).ajaxSubmit 不是函数
【发布时间】:2012-01-08 20:50:45
【问题描述】:

我使用的是 rails 3.1.3、jquery.form.js 版本 2.9.4 和 jquery 1.7.1。 我在 jquery.form.js 中放置了一些控制台打印语句,因此我可以(在 firebug 控制台中)看到它已加载。

我这样设置我的表单:

var options = {
  success: s.update_or_add_contact_response, type: 'post', 
  dataType: 'json',  url:  s.update_contact_path
};

$('form#new_user').submit(function() {
  $(this).ajaxSubmit(options);
  return false;
});

当我单击按钮提交表单时,我在 firebug 控制台中收到以下错误消息:

$(this).ajaxSubmit 不是函数

我在这里做错了什么?

【问题讨论】:

    标签: jquery forms jquery-forms-plugin


    【解决方案1】:

    这是一个新功能,所以你必须在 jQuery lib 之后添加其他 lib 文件

    <script src="http://malsup.github.com/jquery.form.js"></script>
    

    它会工作.. 我已经测试过了。。 希望它对你有用..

    【讨论】:

      【解决方案2】:

      我从来没有使用过这个函数,但是根据http://jquery.malsup.com/form/#ajaxSubmit 的文档,你的语法看起来是正确的。

      如果没有看到你所有的代码,我猜你没有链接 jQuery 插件,或者你没有将代码包装在 $( document ).ready( function( ) { //code } ); 中。

      查看您的源代码并确保已链接该插件。有吗?

      在var options 上方添加警报。有输出吗?

      【讨论】:

      • +1 听起来好像插件没有正确链接,或者代码在加载之前正在执行。
      • OP:“我在 jquery.form.js 中放置了一些控制台打印语句,因此我可以(在萤火虫控制台中)看到它已加载。”所以问题似乎不是包容性。
      【解决方案3】:

      也许您缺少 document.ready 包装器?

      $(function() { // same as document.ready
          var options = {
            success: s.update_or_add_contact_response, type: 'post', 
            dataType: 'json',  url:  s.update_contact_path
          };
      
          $('form#new_user').submit(function() {
            $(this).ajaxSubmit(options);
            return false;
          });
      });
      

      【讨论】:

        【解决方案4】:

        我认为 jQuery 一定与其他 js 文件冲突,您可以从 here 找到一些帮助,将代码中的 $ 替换为 jQuery 可能会有所帮助。

        【讨论】:

          猜你喜欢
          • 2011-07-13
          • 2023-03-03
          • 2021-03-31
          • 2018-01-19
          • 2012-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多