1

私はこのAJAXフォームを持っています:

function form(){

        var icao = document.getElementById('icao').value;
        var name = document.getElementById('name').value;
        var weightempty = document.getElementById('weightempty').value;
        var weightfull = document.getElementById('weightfull').value;
        var cargofull = document.getElementById('cargofull').value;
        var cruisespeed = document.getElementById('cruisespeed').value;
        var range = document.getElementById('range').value;
        var price = document.getElementById('price').value;
        var firstclassseats = document.getElementById('firstclassseats').value;
        var businessclassseats = document.getElementById('businessclassseats').value;
        var economyclassseats = document.getElementById('economyclassseats').value;
        ajax.open("POST","new_aircraft_process.php",true);
        ajax.onreadystatechange=function(){
            if(ajax.readyState==4)
            {
            var respuesta=ajax.responseText;


            document.getElementById('result').innerHTML=ajax.responseText;
            $("#newaircraftdialog").dialog('close');


            refreshTable(function(){$("#loadingdialog").dialog('close');});
            }
        }
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajax.send("icao="+icao+"&name="+name+"&weightempty="+weightempty+"&weightfull="+weightfull+"&cargofull="+cargofull+"&cruisespeed="+cruisespeed+"&range="+range+"&price="+price+"&firstclassseats="+firstclassseats+"&businessclassseats="+businessclassseats+"&economyclassseats="+economyclassseats);
    $("#loadingdialog").dialog('open');
    }

私が欲しいのは、結果divに結果が表示されたとき(「成功したフォーム」というテキストです)、5秒間だけ表示されてから消えることです。さまざまな方法を見つけましたが、divを削除したくありません。もう一度フォームを作成したい場合、この結果は div に再度表示され、5 秒後に消える必要があるためです。

4

3 に答える 3

3
$('.myDiv').fadeIn(); // Show the div to start.
// All your other code here.
setTimeout(function() { $('.myDiv').fadeOut() }, 5000); // hide the div after we're done
于 2013-01-16T17:51:20.193 に答える
0

使用できますdelay()

$('divtoremove').delay(5000).fadeOut('fast');
于 2013-01-16T17:53:46.743 に答える
0

div を非表示にして、後でフォームが再送信されたときに表示することができます。

ajax.onreadystatechange=function(){
    if(ajax.readyState==4)
    {
        var respuesta=ajax.responseText;


        var $result = $('#result');
        $result.html(ajax.responseText);
        $result.show();
        setTimeout(function() { $result.hide() }, 5000);
        $("#newaircraftdialog").dialog('close');


        refreshTable(function(){$("#loadingdialog").dialog('close');});
    }
}

デタッチを使用して、後で DOM に再アタッチすることもできます。

于 2013-01-16T17:54:12.597 に答える