我正在使用Javascript和JQuery。
我有以下变量var RoleID="";
,我把它放在所有函数之外。
我有一个功能
role_submit(){
var role=$('#emp_role').val();
var url="submitrole.php";
$.post(url, {role2: role} ,function(data){
var RoleID=data;
alert(RoleID);
})
}
此函数获取<input type="text" id="emp_role">
的值,并使用JQuery url='submitrole.php'
提交给$.post
并从url='submitrole.php'
获取 ID 返回保存在RoleID
中,之后RoleID
会收到提醒。这一切都是使用<button onclick="role_submit();" type="submit">Submit</button>
执行的,工作正常,意味着来自url='submitrole.php'
的 ID 准确无误,并且也会准确提醒。
当我使用以下函数查看全局变量时出现问题 var RoleID
function alert_roleID(){alert(RoleID);}
我使用
调用此函数 <button onclick="alert_roleID();" type="submit" >Role ID</button>
此时警报弹出显示的内容,而不是我从url='submitrole.php'
返回的 ID 。如何让全局变量RoleID
的值为url='submitrole.php'
?
答案 0 :(得分:1)
有两种方式。
显式将变量设置为窗口。 Window
是全球范围。
function role_submit(){
var role=$('#emp_role').val();
var url="submitrole.php";
$.post(url, {role2: role} ,function(data){
window.RoleID=data;
alert(RoleID);
})
}
或者在全局范围内定义变量。如果您这样做,请确保在重新定义时不使用var
。如果你使用var
,它只会在该范围(函数)中显示一个新变量。
var RoleID;
function role_submit(){
var role=$('#emp_role').val();
var url="submitrole.php";
$.post(url, {role2: role} ,function(data){
RoleID=data;
alert(RoleID);
})
}
答案 1 :(得分:0)
在外部声明变量之后,不应再在函数内部再次使用'var',因为这将重新创建本地范围的变量而不是全局范围的变量,并且在函数外部不可访问。所以你可以删除'var',如下所示,
var RoleID = '';
role_submit(){
var role=$('#emp_role').val();
var url="submitrole.php";
$.post(url, {role2: role} ,function(data){
RoleID=data;
alert(RoleID);
})
}