设置&自动使用javascript刷新输入字段的值

时间:2013-12-21 19:44:18

标签: javascript jquery html

我怎么能 设置&使用javascript自动刷新输入字段的值?

我目前正在使用这样的。

<script type="text/javascript">
var auto_refresh = setInterval(
function()
{
$('#value5').fadeOut("fast").load('get_data.php').fadeIn("slow");
}, 5000);
</script>

<div id="value5" ></div>

如果我在div中设置id = value5但是如果我为这样的输入框设置相同的id

<script type="text/javascript">
var auto_refresh = setInterval(
function()
{
$('#value5').fadeOut("fast").load('get_data.php').fadeIn("slow");
}, 5000);
</script>

<input class="form-control input-lg" id="value5" type="text"> 

然后它没有在输入框中显示数据。

我甚至尝试过来自Set the value of an input field

的代码
<input type="text" id="value5">

<script type="text/javascript">
var elem = document.getElementById("value5");
elem.value = "My default value";
</script>

但是这显示“我的默认值”作为值并且仅显示一次,它不会令人耳目一新。 我甚至试图像这样修改上面的代码

<input type="text" id="value5">

<script type="text/javascript">
var elem = document.getElementById("value5");
elem.value = "#value5";
</script>

仍然无法正常工作。

3 个答案:

答案 0 :(得分:2)

.load()将HTML放入匹配的元素中。如果您尝试填充输入文本框的值,请改用.val()。此外,如果AJAX调用花费的时间比您预期的要长或者延迟失败,则使用setInterval()重复异步AJAX调用可能会导致意外问题。请尝试使用此函数,只有在成功完成AJAX调用后才会重新执行5秒超时:

function loadValue5() {
    $.ajax({
        method: 'GET',
        url: 'get_data.php',
        success: function(responseText) {
            $('#value5').fadeOut('fast', function () {
                $('#value5').val(responseText).fadeIn('slow', function() {
                    setTimeout(loadValue5, 5000);
                });
            });
        }
    });
}
loadValue5();

编辑: Here是一个有效的例子。

答案 1 :(得分:0)

您只需要将值替换为null。 所以$(&#34; .form-name输入).val(&#34;&#34;);应该刷新表单输入元素。将它与SetTimeout结合起来,你就可以了。

答案 2 :(得分:-1)

设置div的值与将值设置为输入框不同。您想要设置输入框的值属性:

$('#value5').attr('value').fadeOut("fast").load('get_data.php').fadeIn("slow");