Javascript 将多个文本框值转换为饼图切片(百分比)

Javascript 将多个文本框值转换为饼图切片(百分比),javascript,html,highcharts,Javascript,Html,Highcharts,谢谢你对我过去的问题的帮助。我想这是最后一次了。 这是关于我的问题的最新代码 在那里,我有5个文本框类别 我的目标是这样的 Texbox 1值:20 Texbox 2值:20 Texbox 3值:20 文本框4值:22 文本框5值:18 图表的值在我的文本框中是相同的,但它不起作用。我怎样才能做到这一点?您可以尝试编辑它。泰 这是我代码的一部分 (function () { $('#container').highcharts({ chart: {

谢谢你对我过去的问题的帮助。我想这是最后一次了。 这是关于我的问题的最新代码

在那里,我有5个文本框类别

我的目标是这样的

Texbox 1值:20 Texbox 2值:20 Texbox 3值:20 文本框4值:22 文本框5值:18

图表的值在我的文本框中是相同的,但它不起作用。我怎样才能做到这一点?您可以尝试编辑它。泰

这是我代码的一部分

(function () {
        $('#container').highcharts({
            chart: {
                plotBackgroundColor: null,
                plotBorderWidth: 1,//null,
                plotShadow: false
            },
            title: {
                text: 'Crimes for this Year'
            },
            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: [{
                type: 'pie',
                name: 'Browser share',
                data: [
                    ['Arson',   0],
                    ['Homicide',       0],
                    ['Physical Injuries',   0],
                    ['Carnapping',       0],
                    ['Ethical Law Violation',       0]

                                ]
            }]
        });
    });
                     function pie (){                 
    $('#chart').on('click', function() {

    var value = Number($('#arson').val());
    var value = Number($('#homicde').val());
    var value = Number($('#physicalinjuries').val());
    var value = Number($('#carnapping').val());
    var value = Number($('#elv').val());

       var myChart = $('#container').highcharts();

       myChart.series[0].data[0].update(value); 
     myChart.series[0].data[1].update(value); 
         myChart.series[0].data[2].update(value); 
     myChart.series[0].data[3].update(value); 
         myChart.series[0].data[4].update(value); 

    });
    }

您犯了一个非常明显的错误:每次读取一个值时,都会删除上一个值。更重要的是,您将多次值重新定义为一个新变量。。。您可能希望使用严格的;对这样的错误抛出异常。 您还在“homicde”中拼错了“homicide”,这妨碍了计算。 这个东西只有在第一次点击后才能工作,所以我将fiddle改为从dom就绪开始,并直接钩住点击处理程序。 在那之后,你可以看到你有非常相似的代码:是时候做一个函数了


不客气。是的,我明白了,现在我直截了当地说了但我敢打赌,当你阅读代码的时候,你会明白这一切。否则,请不要犹豫问。真的那么高兴,真的那么多。它工作得非常完美。我注意到,如果5个文本框的值大于100,它将返回到100%,这对我来说是确定的。数学基础:染料海图似乎不考虑你提供了一个百分比,而是一个值,也许这是你可以用某种API改变的东西,多诺,我会自行处理,因为我必须警告用户,所有的数字不总结为100%…或者甚至容忍一些小错误,…,取决于您的目标/输入/。我问这个问题的原因是,我将在数据库中使用selectcount from table命令,并将其传输到这些文本框中,然后更新图表。我的朋友告诉我,我的select命令将给我一个整数的输出,然后他还告诉我,我需要计算它,然后才能将其转换为百分比,然后将其转移到图表中。诸如此类,你能说些什么呢?既然highCharts可以做数学,让他做吧,我会说:使用真实的数字,你以后就有机会在你的图表上显示相对和/或绝对数字。
$('#chart').on('click', function () {

    var myChart = $('#container').highcharts();

    var wrongValue = false;

    function setValue(type, slot) {
        var value = Number($('#' + type).val());
        if (isNaN(value) || value === undefined) {
            wrongValue = true;
            value = 0;
        }
        myChart.series[0].data[slot].update(value);
    }

    setValue('arson', 0);
    setValue('homicide', 1);
    setValue('physicalinjuries', 2);
    setValue('carnapping', 3);
    setValue('elv', 4);

    if (wrongValue) {
        // warn the user.
    }

});