
[英]How to get the value of 'index' and put it on a global variable?
[英]How to get global variable value to ajax
我想在ajax,jquery函数中获取全局变量值。
我在这里使用这段代码..
码:
<script type="text/javascript">
var id;
function refreshRecord(id)
{
alert(id);
}
$(document).ready(function(){
$("#refresh").click(function(){
var fileId=id;
alert("id is"+fileId);
$.ajax({
type:"post",
url:"checkStatusAndNumRecs",
data: {fileId:fileId},
success:function(data){$("#div1").html(data);},
error:function(data){$("#div1").html("It was a failure !!!");}
});
});
});
</script>
点击一个提交按钮我正在调用javascript函数
<input type="radio" name="submit" value="submit" onclick="refreshRecord(this.value)">
这里我想得到的是,我已经在脚本标签中声明了全局变量id,当我点击单选按钮时,onclick事件调用带有一个参数'id'的javascript函数refreshRecord(id)
现在,id值将被设置为某个值。 现在我想在jquery函数中获取该变量值,我想将其分配给
var fileId = id;
但是当我做了上面的代码并点击按钮。
在警报中它正确显示第一个值(即来自javascript的警报正确到来)但来自ajax的警报,jquery即将到来是未定义的或[对象对象]
我怎么解决这个?
您需要将传递给函数的值分配给全局变量id
。 目前您没有分配它。 函数的参数id
只是函数的本地,它不是全局函数,全局变量id
仍未undefined
。
只需修改如下,
var id;
function refreshRecord(value)
{
id = value;
alert(id);
}
您应该将字段中的值放在全局变量中:
var id;
function refreshRecord(inputValue)
{
id = inputValue;
alert(id);
}
因为如果你这样做:
function refreshRecord(id)
{
alert(id);
}
由于函数范围内存在名称冲突,因此无法在refreshRecord函数内访问id全局变量。 请阅读有关范围以了解:
http://robertnyman.com/2008/10/09/explaining-javascript-scope-and-closures/
我们在函数内传递的参数充当该函数的局部变量。 因此,在您的函数中,您实际上是在创建局部变量并设置值。
试试这个 -
var id;
function refreshRecord() {
id = $("input:radio").val();
}
给一个id以获得更好的单选按钮选择器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.