我使用表单设置Chart.js,以便从表单中获取输入字段,单击“提交/更新”按钮后,它会使用输入字段中的数字作为数据点生成圆环图。
问题是如何让表单或Chart.js运行一次并生成一个圆环图,其中输入字段数字在页面上(在页面加载)。
表单输入字段已通过HTML5本地存储填充数字/数据。
我尝试过jQuery .submit();在页面加载但没有任何反应。我感谢任何帮助。谢谢。
编辑:我已经走了,创造了一个重新创造问题的小提琴。
$(document).ready(function () {
$("#submit-btn").click(function (e) {
e.preventDefault();
var outputyearly = $('#outputyearly');
var amount = parseInt($('#amount').val().replace(/,/g, ''), 10);
var rate = parseFloat($('#rate').val(), 10);
var term = parseFloat($('#term').val(), 10);
// Some math calculations code
if (window.onload.myDoughnutChart != null) {
window.onload.myDoughnutChart.destroy();
}
var ctx = document.getElementById("myChart").getContext("2d");
window.onload.myDoughnutChart = new Chart(ctx, {
type: 'doughnut',
data: data,
options: options
});
});
});
答案 0 :(得分:0)
您可以将绘制图表的代码放在函数中,并在$(document).ready
和$("#submit-btn").click
事件上调用该函数,如下所示:
function drawChart() {
var outputyearly = $('#outputyearly');
var amount = parseInt($('#amount').val().replace(/,/g, ''), 10);
var rate = parseFloat($('#rate').val(), 10);
var term = parseFloat($('#term').val(), 10);
//Destroy the dougnut chart here, not sure how it's accessible, but it won't work through window.onload
var ctx = document.getElementById("myChart").getContext("2d");
new Chart(ctx, {
type: 'doughnut',
data: data,
options: options
});
}
$(document).ready(function() {
drawChart();
$("#submit-btn").click(function (e) {
e.preventDefault();
drawChart();
});
});
请注意,$(document).ready
已将其中的代码强制执行,以便在页面完成时执行,因此在其中放置window.onload
不会产生任何影响。