gpt4 book ai didi

Javascript 小故障更新输入值

转载 作者:太空宇宙 更新时间:2023-11-04 16:12:47 25 4
gpt4 key购买 nike

我正在处理一个使用 Morris.js 创建图表的 HTML 页面。我添加了日历小部件以允许用户选择开始日期和结束日期,以及一个更新数据的按钮。我意识到如果我自动将日期设置为“今天”会很方便,这样图表在第一次加载时就已经有数据了。一切正常:日期设置为今天,查询返回有效的 JSON,图表显示正确的数据。然而,<input>字段没有更新,我不知道为什么。同样值得注意的是,在“空”字段上按下按钮后,日期设置正确,并且随后会出现在输入中。相关代码如下:

<script> // inside head tag
function updateCharts() {
startDate = document.getElementById("startDate").value;
endDate = document.getElementById("endDate").value;
scale = document.getElementById("scale").value;
console.log("before " + startDate);
if (startDate == "") {
console.log("empty start");
var today = new Date;
startDate = today.getFullYear() + "-" +
(today.getMonth() + 1) + "-" + // getMonth in range [0,11]
5;//today.getDate();
document.getElementById("startDate").value = startDate;
console.log("input " + document.getElementById("startDate").value);
}
if (endDate == "") {
console.log("empty end");
endDate = startDate;
document.getElementById("endDate").value = endDate;
console.log("output " + document.getElementById("endDate").value);
}
console.log("after " + startDate + " " + endDate);
var charts = ['providers', 'variance', 'cities', 'convertions', 'unique_ids'];
var len = charts.length;
for (var i = 0; i < len; i++) {
var chartType = charts[i]
chart(chartType, startDate, endDate, scale);
}
}
</script>

这里是输入标签:

<div id="dates" class="row">
<p>From: <input type="text" id="startDate" />
To: <input type="text" id="endDate" />
<select id="scale">
<option value="0">Hour</option>
<option value="1">Day</option>
<option value="2">Month</option>
</select>
<button value="Show" onclick="updateCharts()">Show</button>
</p>
</div>

我的脚本在正文末尾调用函数:

<script>
window.onload = updateCharts();
</script>
</body>

加载后按下按钮前的控制台输出:

before 
index.html (line 41)
empty start
index.html (line 43)
input 2015-11-5
index.html (line 49)
empty end
index.html (line 52)
output 2015-11-5
index.html (line 55)
after 2015-11-5 2015-11-5

如您所见,该值(正确吗?)在条件语句后由 Javascript 设置和检索,但未显示在浏览器中。

最佳答案

尝试用 window.onload = updateCharts 代替 window.onload = updateCharts();

参见 GlobalEventHandlers.onload , What is the different between window.onload = init(); and window.onload = init;

关于Javascript 小故障更新输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33990828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com