1

我有一个表单,我在没有使用 .ajax() 刷新页面的情况下成功提交了一个表单,但是我修改了我的表单以包含一个上传字段并且它没有上传。所以我尝试使用有效的 ajaxForm() 方法,即它发布和上传但它刷新页面。如何阻止它刷新页面?

我试图把一个 return false 并且它完全停止提交工作。

这是我到目前为止所拥有的

        var options = {
            target:     '#post',
            url:        '<?php echo $linkr; ?>',
            success:    function() {
                $("#post").load("<?php echo $linkr; ?>");
            }
        };
        $("form").submit(function () { 
        $(this).ajaxForm(options); 
        return false;
        });

此代码进入一个空白页面,但它发布和上传:

             var options = {
                target:     '#post',
                url:        '<?php echo $linkr; ?>',
                success:    function(result) {
                    $("#post").html(result);
                }
            };
            $("form").ajaxForm(options); 

重申一下,我需要它在不刷新页面的情况下发布和上传。使用 .ajax() 可以完成此操作,但不会上传。放置 preventDefault 不起作用,或者我使用错误。

4

3 回答 3

1

利用preventDefault()

$("form").submit(function (e) { 
    e.preventDefault();
    $(this).ajaxForm(options); 
});
于 2012-09-19T11:17:43.843 回答
0

基本上你的问题是浏览器并不真正支持在不重新加载页面的情况下正常上传文件。不过可以使用 HTML5 或 flash。

您可以阅读本教程以了解如何使用 HTML5 实现 ajax 文件上传 http://net.tutsplus.com/tutorials/javascript-ajax/uploading-files-with-ajax/

或者你可以使用像http://www.uploadify.com/这样的插件

于 2012-09-19T14:05:45.143 回答
0

尝试这样的事情然后让我知道-

   var options = {
        target:     '#post',
        url:        '<?php echo $linkr; ?>',
        success:    function(result) {
            $("#post").html(result);
        }
    };
于 2012-09-19T11:19:00.730 回答