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またはフラッシュを使用することは可能です。

このチュートリアルを読んで、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 に答える