Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 制作一个动态的';ajaxForm';_Jquery_Ajaxform_On The Fly - Fatal编程技术网

Jquery 制作一个动态的';ajaxForm';

Jquery 制作一个动态的';ajaxForm';,jquery,ajaxform,on-the-fly,Jquery,Ajaxform,On The Fly,我正在尝试在即时创建的表单上使用ajaxForm。事实上,我的应用程序将“动态”生成一个链接,通过单击该链接,它将生成一个ajaxForm(同样是jQuery动态生成的!),因此我将.live()函数与ajaxForm()一起使用。这是我的错误的代码: $('form').live('submit', function() { $(this).ajaxForm({dataType: 'html', success: function(data) { alert(data)

我正在尝试在即时创建的表单上使用
ajaxForm
。事实上,我的应用程序将“动态”生成一个链接,通过单击该链接,它将生成一个
ajaxForm
(同样是jQuery动态生成的!),因此我将
.live()
函数与
ajaxForm()
一起使用。这是我的错误的代码:

$('form').live('submit', function() {
    $(this).ajaxForm({dataType: 'html', success: function(data) {
        alert(data);
    }});
    return false; // For preventing page refresh!
});
在我的表单中,当我单击submit按钮时,页面将刷新


有解决方案吗?

尝试使用event.stopPropagation();这是一个JQuery函数

为此,您需要将事件对象作为Handler的参数:

$('form').live('submit', function(event){
并使用此行代替
return false

event.stopPropagation();

您可能需要调用
preventDefault
来代替“returnfalse”。将表单与AJAX结合使用的
jQuery live
用例的伪代码如下:

    //Override form submit
    $("form").live("submit", function (event) {
        event.preventDefault();
        var form = $(this);
        $.ajax({
            url: form.attr('action'), // Get the action URL to send AJAX to
            type: "POST",
            data: form.serialize(), // get all form variables
            success: function(result){
                // ... do your AJAX post result
            }
        });
    });

另外,我不确定使用ajaxForm(因为我没有使用ajaxForm)时是否需要使用
jQuery.live
。从医生推断,你可能根本不需要它

return false
应该可以工作,但是,当您不需要同时执行这两项操作时,最好执行
event.preventDefault()
event.stopPropagation()
。在这种情况下,它将是
event.preventDefault()
,因为您希望停止提交表单的默认操作。但是就像我说的,
返回false
应该在您的情况下工作,所以我怀疑您使用的插件可能会出现某种错误。如果我是你的话,我会再看一次文档
插件,并确保您的选项是正确的。就在后面,我看到了一个
数据类型:“html”
,并且只有
“xml”、“script”或“json”
,如文档中所述……您可能想再看看插件的用法

正如其他人所说,您的
返回false应该可以工作

所以,还有别的问题。通过在jQuery中放置调试代码,确保jQuery已正确加载,并且提交时处理程序实际执行


另外,请确保已安装并启用Firebug(或浏览器的等效程序),以便执行调试。

尝试将
url:“#”
添加到传递给ajaxForm函数的对象中。如果将其向后,则不希望停止传播,您只是想阻止默认行为。是否需要即时解决方案?您还没有向我们展示足够的内容。我们不知道您在何处执行此代码,也不知道如何包含jQuery,我们也看不到实际操作中的问题。是的,加载页面后将从服务器接收数据。单击链接后将显示该表单,该链接是接收数据的处理方法的一部分,该方法不是有用信息。:)对不起,我脑子里充满了错误!如何包含jQuery:simple脚本标记(由cakephp生成)。jQuery.js适用于其他元素,因此它被正确地包含。我们能在行动中看到问题吗:我不可能有这么多答案,问题应该是这个!好的,我现在来测试一下