我怎么能 设置&使用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>
仍然无法正常工作。
答案 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");