-1

$.post を使用してデータを取得し、関数の非表示フィールドに値を保存する js 関数がありますが、関数を呼び出した後、関数の外では機能しませんが、単に alert('sometext'); を使用すると機能しません。アラートの前に非表示フィールドの値を取得すると、値が格納され、正しい出力コードが次のようになります

function abc(){
    $.post('sch.php',{begin:'he'},function(data){
        $('#g').attr('value',data);
    });
}
//call a function
abc();
alert($('#g').attr('value'));
//won't alert stored value
4

2 に答える 2

2

$.post は非同期です。アクセスしようとしている間、データは利用できません。同期呼び出しを使用するか、依存するすべてのコードをコールバック メソッド内に配置する必要があります。変更されたコード:

function abc(callback ){
    $.post('sch.php',{begin:'he'},function(data){
        $('#g').attr('value',data); 
        callback ();
    });
}
//call a function
abc(function(){
alert($('#g').attr('value')); 
});
于 2012-10-06T18:48:09.853 に答える
0

.val() を使用して値を設定します。

$("#g").val(data);
于 2012-10-06T18:46:33.313 に答える