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”显示“未定义”,但它必须显示“数据”中的字符串。 我无法将“数据”存储到变量中,因此我可以在“post”函数之后使用它。怎么做?
答案 0 :(得分: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;
}
答案 1 :(得分:0)
您的作业应该有效,但您的代码是异步执行的 - 也就是说,您正在发出AJAX调用,然后在AJAX调用完成之前立即执行alert()
。如果你想使用数据,你应该在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
});