0
this.formsValidation = function(form_id)
{
    var fieldNames;
    jQuery.post('index.php','option=com_itcs_forms&controller=itcs_fields&task=getFieldsNameForValidation&tmpl=component&form_id='+form_id,
    function(data)
    {
        fieldNames = data;
    });
    alert(fieldNames);
    return false;
}

ここで「fieldNames」は「未定義」を示していますが、「data」にある文字列を表示する必要があります。「データ」を変数に格納できないため、「ポスト」関数の後に操作できます。どうやってするか?

4

2 に答える 2

1

以下をせよ -

this.formsValidation = function(form_id)
{
    var fieldNames;
    jQuery.post('index.php','option=com_itcs_forms&controller=itcs_fields&task=getFieldsNameForValidation&tmpl=component&form_id='+form_id, 
     function(data)
     {
         fieldNames = data;
         alert(fieldNames);
     });

     return false;
}
于 2013-09-13T10:23:10.647 に答える
0

割り当ては機能するはずですが、コードは非同期で実行されています。つまり、AJAX 呼び出しを発行してalert()から、AJAX 呼び出しが完了する直前に実行しています。データを操作したい場合は、AJAX コールバックで行う必要があります。これにより、コードの実行時にデータがあることが保証されます。

var fieldNames;
jQuery.post('index.php','option=com_itcs_forms&controller=itcs_fields&task=getFieldsNameForValidation&tmpl=component&form_id='+form_id,
function(data)
  {
     fieldNames = data;
     alert(fieldNames);
     // do more stuff here

  });
于 2013-09-13T10:26:22.660 に答える