1

JQuery を使用して Ajax フォームを送信しようとしていますが、問題を特定できません。

<script type="text/javascript">
                $(document).ready(function()
                {

                    $('#photoimg').live('change', function()
                    {
                        $("#emailpreviewloader").html('');
                        $("#emailpreviewloader").html('<img width="180" src="/loader.gif" alt="Uploading...."/>');

                        $('#myImageForm').ajaxForm(function() {
                            alert("Thank you for your comment!");
                        });

                        alert("about to submit");
                        $('form#myImageForm').submit();
                        alert("submitted");
                    });
                });
            </script>

「送信しようとしています」と「送信済み」の両方のアラートが発生しますが、コメントありがとうございますは発生しません。

何が間違っているのですか?

編集 :

フォームコード:

<form id="myImageForm" method="post" enctype="multipart/form-data" action="/ajaximage.php">
                            <input type="file" name="photoimg" id="photoimg" />
                        </form>
4

3 に答える 3

2
$(document).ready(function()
                {
                    $('#myImageForm').ajaxForm({
                       beforeSend : function(){alert('about to submit')},
                       complete:function(){alert('submited and result recieved')}
                    });
                    $('#photoimg').change( function()
                    {
                        $("#emailpreviewloader").html('');
                        $("#emailpreviewloader").html('<img width="180" src="/loader.gif" alt="Uploading...."/>');

                        $('form#myImageForm').submit();
                        alert("submitted");
                    });
                });

このコードを試して、送信しようとしているアラートまたは送信済みで結果が受信されたアラートが表示されるかどうかを確認してください

送信しようとしているアラートが表示されない場合は、.ajaxForm を呼び出している要素が正しくない可能性があります。両方のアラートを受け取っている場合、最も可能性の高いケースは、サーバーがエラーを返していることです。

于 2013-08-07T07:33:12.360 に答える
0

オプションを介してajaxFormで必要なコールバックを指定する方がよいと思います。

例えば

$('#myImageForm').ajaxForm({
  success: function () { ... }
});

また、submit() は非同期関数になることに注意してください。したがって、alert("submitted"); 送信が成功したか失敗したかに関係なく呼び出されます。

于 2013-08-07T07:49:41.637 に答える