Javascript 试图将数据从文本字段加载到highchart
我通过JS填充highchart数据,数据来自页面上的文本框,此内容被动态替换:Javascript 试图将数据从文本字段加载到highchart,javascript,highcharts,Javascript,Highcharts,我通过JS填充highchart数据,数据来自页面上的文本框,此内容被动态替换: function myFunction() { var myvar = document.getElementById("TextBox1").value; Highcharts.chart('piechart2', { chart: { plotBackgroundColor: null, plotBorderWidth: null
function myFunction() {
var myvar = document.getElementById("TextBox1").value;
Highcharts.chart('piechart2', {
chart: {
plotBackgroundColor: null,
plotBorderWidth: null,
plotShadow: false,
type: 'pie'
},
credits: {
enabled: false
},
title: {
text: 'Data, 2018'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
format: '<b>{point.name}</b>: {point.percentage:.1f} %',
style: {
color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
}
}
}
},
series: [{ name: 'Permits', data: myvar }]
});
};
我的文本字段:
<input name="TextBox1" value="[{"name":"Closed","y":1},{"name":"Rejected","y":1}]" id="TextBox1" type="text">
当前执行JS时,图表没有呈现,我相信这是因为用于数据的myvar没有正确复制。如果我将“myvar”替换为文本框的内容,图表将正确呈现
感谢您的帮助 我猜您要设置值的字符串有一个示例输入?看起来你想要一个字符串化的json之类的东西?如果是这样的话,你需要在整件事周围使用一种报价,然后在内部报价中使用另一种报价,如下所示:
value='[{"name":"Closed","y":1},{"name":"Rejected","y":1}]'
那么我猜在你把它交给高分排行榜之前,你需要对它进行解构
var myvar = document.getElementById("TextBox1").value;
myvar = JSON.parse(myvar)
这假设您希望在文本框中键入有效的json,这可能不是一个好的假设。另一种解决方案可能是有多个输入,一个输入获取您所需的每个值,然后您可以将它们全部粘贴到一个格式正确的对象中。尝试使用JSON.parsemyvar将其解析为JSON,它现在以字符串的形式运行。非常感谢Steve,现在一切正常。这让我快发疯了!