未定义的Javascript值
我正在尝试通过javascript确定值是否发生了变化。本质上是在文本框上进行检查,以查看值是否发生变化 但是,当我将值放入变量时,它返回为未定义。很明显,我做错了一些愚蠢的事情,但我疲惫的头脑无法解决它 以下是我正在做的:未定义的Javascript值,javascript,Javascript,我正在尝试通过javascript确定值是否发生了变化。本质上是在文本框上进行检查,以查看值是否发生变化 但是,当我将值放入变量时,它返回为未定义。很明显,我做错了一些愚蠢的事情,但我疲惫的头脑无法解决它 以下是我正在做的: <script> var stableCount; $(document).ready(function () { $('.div-updated').hide(); $("#responsecontainer")
<script>
var stableCount;
$(document).ready(function () {
$('.div-updated').hide();
$("#responsecontainer").load("CyberTable.aspx");
stableCount = $(".rowcount").val();
var refreshId = setInterval(function () {
alert(stableCount + " - " + $(".rowcount").val())
$("#responsecontainer").load('CyberTable.aspx?t' + Math.random());
}, 3000);
$.ajaxSetup({ cache: false });
});
</script>
var稳定计数;
$(文档).ready(函数(){
$('.div已更新').hide();
$(“#responsecontainer”).load(“CyberTable.aspx”);
stableCount=$(“.rowcount”).val();
var refreshId=setInterval(函数(){
警报(stableCount+“-”+$(“.rowcount”).val())
$(“#responsecontainer”).load('CyberTable.aspx?t'+Math.random());
}, 3000);
$.ajaxSetup({cache:false});
});
警报中的stableCount返回时为未定义,但rowcount.val()返回时带有数字
编辑:请不要无缘无故地否决投票。据我所知,我已经按照所有规则发布了这篇文章,并试图自己发布 加载
.load
是异步的。因此,$(“.rowcount”).val()在您分配stableCount
值时未定义,但在间隔函数中3秒后可用 在文档对象的范围内使用stableCount变量。因为stableCount在这里不是全局的
<script>
$(document).ready(function () {
$('.div-updated').hide();
$("#responsecontainer").load("CyberTable.aspx");
var stableCount = $(".rowcount").val();
var refreshId = setInterval(function () {
alert(stableCount + " - " + $(".rowcount").val())
$("#responsecontainer").load('CyberTable.aspx?t' + Math.random());
}, 3000);
$.ajaxSetup({ cache: false });
});
$(文档).ready(函数(){
$('.div已更新').hide();
$(“#responsecontainer”).load(“CyberTable.aspx”);
var stableCount=$(“.rowcount”).val();
var refreshId=setInterval(函数(){
警报(stableCount+“-”+$(“.rowcount”).val())
$(“#responsecontainer”).load('CyberTable.aspx?t'+Math.random());
}, 3000);
$.ajaxSetup({cache:false});
});
这个答案澄清了我在评论中所说的话。启动加载操作后,它将作为单独的进程运行,只有在调用完整或错误回调时,您才知道它已加载数据。 代码需要修改,以便对加载操作进行回调,并从回调中启动计时器事件
$(文档).ready(函数(){
$('.div已更新').hide();
$(“#responsecontainer”).load(“CyberTable.aspx”,
//这里是回调函数。。。。
函数(){
var stableCount=$(“.rowcount”).val();
var refreshId=setInterval(函数(){
警报(stableCount+“-”+$(“.rowcount”).val())
$(“#responsecontainer”).load('CyberTable.aspx?t'+Math.random());
}, 3000);
});
$.ajaxSetup({cache:false});
});
加载是一个异步操作-它启动加载,但只有在任何回调返回成功时,您才知道加载完成,而不是在下一条指令runsI将设置“stableCount=$(“.rowcount”).val()| 0;”这样,如果stableCount未定义,它将获得一个值。发布您的heml代码。告诉我
.rowcount
值返回什么?请参阅下面我更详细的答案…我不明白,负载的异步性如何影响输入值?至少他提供的代码不支持这一点。哈哈,我先到了那里,但作为一个注释:-)@Esa-看到我的注释了吗?那么根本没有办法做到这一点吗?只需通过回调检查加载是否成功,然后从回调启动计时器事件正确,但不是问题的答案:-),这非常有意义。感谢您花时间解释它为什么会这样做。