【问题标题】:Issues sending a form with ajax使用 ajax 发送表单的问题
【发布时间】:2013-05-18 22:21:38
【问题描述】:

我无法自行提交使用 ajax 代码调用的表单,该表单已准备就绪。当用户单击提交时,我希望它保留在 index.php 上,但是代码似乎并不存在,而是立即将我带到 new_work.php。根据我的阅读,您不需要将 preventDefault 和 stopPropagation 与 ajaxForm 一起使用。

var initAjaxForm = function() {
    ('#ajax_form').ajaxForm({
        success: function(data) {
            $('body').html(data); 
        }
        });   
    }

$(document).ready(function() {
    $('body').load("new_work.php", function() {
        initAjaxForm();
    });
});

在 html 标记中没有什么重要的。只是一个有形式的空骨架

<form action="new_work.php" method="post" id="ajax_form">

我正在使用 ajaxform 插件,因为这是我知道通过 ajax 发送文件的唯一方法。如果有更好的解决方案,请告诉我!谢谢。

编辑:我得到的错误是:

Uncaught TypeError: Object #ajax_form has no method 'ajaxForm'

【问题讨论】:

    标签: jquery ajax ajaxform


    【解决方案1】:

    您是否加载了jQuery Form Plugin? ajaxForm 没有内置到标准的 jQuery 中。

    ajax_form 是 HTML 表单的 id 吗?

    【讨论】:

    • 两者都是。我在 OP 中发布了表单标题。
    • 该表单标题在index.phpnew_work.php 中吗?如果是前者,它将被load 覆盖,并在调用 ajaxForm 时消失。
    • 它在 new_work.php... 在调用 load 后我能做些什么让它工作?
    【解决方案2】:

    尝试添加美元符号;

    $('#ajax_form').ajaxForm({
    

    【讨论】:

    • 哦。这摆脱了错误。但代码仍将我带到 new_work.php
    • 为什么你body里的php文件会加载?尝试只调用函数。
    • 我想不一定是这样,但我把它放在那里是为了帮助我更好地组织我的页面。如果我没有首先使用 ajax 调用获取数据,它只适用于函数调用。但我想即使假设我也想解决原因并让它以这种方式工作而无需从一开始就存在表单。
    猜你喜欢
    • 2011-04-19
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多