刷新输入字段上的Javascript变量?

时间:2014-12-17 17:13:24

标签: javascript jquery ajax

当输入字段(文本类型)值发生变化时,我试图动态更改变量值。

输入字段值也是动态的。

所以,基本上,当输入字段值改变时,变量值应该相应地改变。

这是我目前的代码:

$('#map-txt').change(function(e){
var myData = document.getElementById("myText").value;

var myVar = eval("[" + myData + "]");
});

因此,myText的值是一个AJAX结果,每X秒更新一次。 工作正常。

myVar的值与myText值相同,但这仅在我加载页面和/或刷新页面时有效?

我不完全确定它是否无效,因为我将jquery与纯javascript混合或者我正在做的事情是完全错误的。

我需要做的是在没有页面刷新的情况下更改myVar的值。

任何帮助将不胜感激。

编辑,这是我的AJAX代码:

<script>

$(document).ready(function () {

    function load() {
        $.ajax({ //create an ajax request to load_page.php
            type: "GET",
            url: "SOMEPAGE.php",
            dataType: "html", //expect html to be returned                
            success: function (response) {
                $("#map-directions").html(response);

                var input = document.getElementById("map-directions").innerHTML;
                document.getElementById("map-txt").value = document.getElementById("map-directions").innerHTML;




                setTimeout(load, 800);



            }

        });
    }

    load();
});
</script>

2 个答案:

答案 0 :(得分:0)

$('#map-txt').change( ... );仅在用户交互时触发,而不是在通过AJAX或其他任何内容更新字段时触发 只需在通过AJAX执行更新的功能中添加$('#map-txt').trigger('change');

success: function (response) {
    $("#map-directions").html(response);
    var input = document.getElementById("map-directions").innerHTML;
    document.getElementById("map-txt").value = document.getElementById("map-directions").innerHTML;

    // trigger the update:
    $('#map-txt').trigger('change');

    setTimeout(load, 800);
}

答案 1 :(得分:0)

这是一个简单的建议:

1:初始化myVar的值,使myVar = myData

2:使用计时器定期检查myData的值是否已更改

代码:

// store the initial value of $('#mytext') in the initialValue variable

myVar = $('#myText').val();

setInterval(function(){

if(myVar != $('#myText').val()){

console.log('changed ');

// change the content of the initialValue
myVar =  $('#myText').val();

}

},2000);

注意这里 2000 是等待然后检查$(&#39; #myText&#39;)。val()的值的时间已更改

希望这是你想要的