-3

私は ajax 呼び出しを使用しており、テキスト ボックス内に進捗状況を表示する必要があります。これが私のajax呼び出しです。

<input type="text" name="cm" id="cm" />

<script type="text/javascript" language="javascript">
    $('#cm').blur(function(){
        $.ajax({
            type:'get',
            url: "/validatecm/"+cmnumber,
            cache:false,
            async:false,
            data:cmnumber,
            success: function(data) {
                alert (data)
            },
            error: function(data) {
                alert(data)
            }
        });
    });
</script>

この AJAX 呼び出しを実行している間、テキスト ボックスに進行状況を表示する必要があります。

4

1 に答える 1

2

あなたはこのようなものを持つことができます。AJAX は非同期であることを意図しています。これのユースケースが同期的であるとは思いません。asyncということで、フラグを外します。

$('#cm').blur(function(){
    $(this).next("img").show();
    $.ajax({
        type:'get',
        url: "/validatecm/"+cmnumber,
        cache:false,
        // async:false,
        data:cmnumber,
        success: function(data) {
               alert (data);
               $(this).next("img").hide();
        }
        error: function(data) {
            alert(data) }
    }
}

上記のスクリプトの小さなシミュレーションは次のようになります。

$(document).ready(function(){
    $("input").blur(function(){
        $(this).next("img").show();
        var a = $(this);
        setTimeout(function(){
            a.next("img").hide();
            a.val("AJAX Load Complete...");
        }, 1000);
    });
});

デモ: jsFiddle .

于 2013-03-07T15:16:55.007 に答える