Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未定义的Javascript值_Javascript - Fatal编程技术网

未定义的Javascript值

未定义的Javascript值,javascript,Javascript,我正在尝试通过javascript确定值是否发生了变化。本质上是在文本框上进行检查,以查看值是否发生变化 但是,当我将值放入变量时,它返回为未定义。很明显,我做错了一些愚蠢的事情,但我疲惫的头脑无法解决它 以下是我正在做的: <script> var stableCount; $(document).ready(function () { $('.div-updated').hide(); $("#responsecontainer")

我正在尝试通过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>

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-看到我的注释了吗?那么根本没有办法做到这一点吗?只需通过回调检查加载是否成功,然后从回调启动计时器事件正确,但不是问题的答案:-),这非常有意义。感谢您花时间解释它为什么会这样做。