Javascript 输入值更改时Chart.js折线图不更新

Javascript 输入值更改时Chart.js折线图不更新,javascript,html,mysql,ajax,chart.js,Javascript,Html,Mysql,Ajax,Chart.js,我在这个涉及Chart.js的问题上有点纠结,我试图弄清楚这个bug是因为我的代码还是与API有关 我有一个简单的图表,它通过ajax从数据库中获取一些权重信息,并在表和chart.js折线图中显示这些信息。我有一个切换按钮,可以在千克和磅之间切换输入和显示数字(使用有些愚蠢的逻辑,我计划稍后清理),但是当使用千克时,图形中没有显示任何内容,但表格输入很好,并且使用控制台时,图形数据似乎没有任何错误 这看起来很奇怪,但将数据[i]乘以。重量测量值乘以2.20462似乎可以显示出来,但任何其他乘数

我在这个涉及Chart.js的问题上有点纠结,我试图弄清楚这个bug是因为我的代码还是与API有关

我有一个简单的图表,它通过ajax从数据库中获取一些权重信息,并在表和chart.js折线图中显示这些信息。我有一个切换按钮,可以在千克和磅之间切换输入和显示数字(使用有些愚蠢的逻辑,我计划稍后清理),但是当使用千克时,图形中没有显示任何内容,但表格输入很好,并且使用控制台时,图形数据似乎没有任何错误

这看起来很奇怪,但将数据[i]乘以
。重量测量值
乘以2.20462似乎可以显示出来,但任何其他乘数(或无乘数)都只能给出一个空白图。在所有情况下,表都显示良好

以下是相关代码:

// loop through data rows, appending html on new lines  
for (var i = 0; i < data.length; i++){
    if (islbs == false){
        var user_weight_date = data[i].weight_date;         
        var user_weight = parseFloat(data[i].weight_measurement).toFixed(2);
        var user_weight_id = parseInt(data[i].weight_entry_id);
    }else{
        var user_weight_date = data[i].weight_date;         
        var user_weight = parseFloat(data[i].weight_measurement * 2.20462).toFixed(2);
        var user_weight_id = parseInt(data[i].weight_entry_id);
    }

    // output data to a table for debugging
    $('#output').append("<br /><b>date: </b>"+user_weight_date+"<b> weight:         </b>"+user_weight+"<button class=\"remove_weight_button\" id=\""+user_weight_id+"\">x</button>");

    // add weight info to weight chart data array
    lineChartData.datasets[0].data[i] = user_weight;
    lineChartData.labels[i] = user_weight_date;
}

// redraw the chart
new Chart(document.getElementById("line").getContext("2d")).Line(lineChartData);

数据以浮点形式存储在mysql中

尝试更改
lineChartData.datasets[0]。data[i]=用户权重
线形图表数据。数据集[0]。数据[i]=+用户权重
(在“user\u weight”变量之前添加一个
+
,强制它成为一个数字)。天哪,这样做有效,你是一个魔术师。事实是,我不知道为什么在另一种情况下它已经起作用了:)这有点奇怪。
// ajax call to submit weight form data to the database, calls getWeightData() to refresh html on completion
$("#weight_tracker_form").submit(function(){

    if (islbs === true){
        $converted_weight = $("#weight").val() / 2.20462;
    }
    else{
        $converted_weight = $("#weight").val();
    }

    $.ajax({
        type: "POST",
        url: "weight_tracker_process.php",
        data: {
            weight: $converted_weight,
            date: $("#date").val(),
            weight_unit_lbs: islbs,
            action: "insert"
        },
        success: function(){
            getWeightData();