1

jquery.form.js と ajax を使用してフォームを送信しています。私が抱えている問題は、成功していないとき(エラーがあるとき)でも、コードに関係なく、成功後にのみ実行するためにajaxがフォームをリセットしていることです。

コードは次のとおりです。

<script>
$(document).ready(function()
{
    $('#FileUploader').on('submit', function(e)
    {
        e.preventDefault();
        $('#submit').attr('disabled', ''); // disable upload button
        //show uploading message
        $("#loadding").html('<div class="loader"><img src="images/ajax-loader.gif" alt="Please Wait"/> <br/><span>Submiting...</span></div>');
        $(this).ajaxSubmit({
            target: '#output',
            success:  afterSuccess //call function after success
        });
    });
});

function afterSuccess()
{
    $('#FileUploader').resetForm();  // reset form
    $('#submit').removeAttr('disabled'); //enable submit button
    $('#loadding').html('');
}
</script>

誰かが問題を指摘できますか。前もって感謝します。

4

3 に答える 3

4
$(this).ajaxSubmit({
            target: '#output',
            success:  afterSuccess,
            error:error
        });

function error(response,status,xhr){
alert("error");}

私のプロジェクトで同じ概念を実装したのでうまくいき、うまくいきます。

于 2014-02-25T15:32:28.920 に答える
-2

successHTTP 応答コードが 200 ~ 299 の範囲 (または === 304) の場合、イベントは常に発生し、それ以外の場合は発生しません。200 OKしたがって、問題が発生した場合でもサーバー側のコードが応答すると推測しています。

サーバーが次のような値を出力する場合、trueその応答テキストをテストできます。

    $(this).ajaxSubmit({
        target: '#output',
        success:  function(response) {
            if(response == "true") {
                afterSuccess();
            }
        }
    });
于 2013-06-17T08:13:31.460 に答える