我正在尝试通过javascript更改值。基本上检查文本框以查看值是否发生变化。
但是,当我将值放入变量时,它会以未定义的形式返回。很明显,我做了一些愚蠢的错事,但我疲惫不堪的头脑无法解决这个问题。
这就是我正在做的事情:
<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>
警报中的stableCount以未定义的形式返回,但rowcount.val()返回时带有数字
编辑:请不要无理由地投票。据我所知,我已遵循所有规则发布这个并尝试自己做。
答案 0 :(得分:1)
.load
是异步的。因此,$(“。rowcount”)。val()在您分配stableCount
值时未定义,但在间隔函数中3秒后可用。
答案 1 :(得分:1)
在文档对象的范围内使用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 });
});
答案 2 :(得分:1)
这个答案澄清了我在评论中所说的内容。启动加载操作后,它将作为单独的进程运行,并且只有在调用完整或错误回调时才知道它已加载数据。 代码需要修改以对回调操作进行回调,并从回调中启动定时器事件
<script>
$(document).ready(function () {
$('.div-updated').hide();
$("#responsecontainer").load("CyberTable.aspx",
// callback function here....
function() {
var stableCount = $(".rowcount").val();
var refreshId = setInterval(function () {
alert(stableCount + " - " + $(".rowcount").val())
$("#responsecontainer").load('CyberTable.aspx?t' + Math.random());
}, 3000);
});
$.ajaxSetup({ cache: false });
});