2014-01-20 39 views
1

使用用户输入的数字数据,我试图将该数据发送到使用jQuery的FLOT,然后绘制点的函数。当我点击提交时,警报函数返回“NaN”,但继续绘制其他数据。我会做错什么?我是否需要将输入放入表单中?以Javascript提交数据

<input type="number" id="txt_name"> 
<input type="submit" value="Submit" onclick=" return hello();"> 
<script type="text/javascript"> 

var d1 = []; 
function hello(){ 

$(function() { 


    var x=document.getElementById('txt_name'); 
    var y=parseInt(x); 
    alert(y); 
    d1.push([x,x]); 
    d1.push([x+5,x+5]); 

    var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]]; 

    // A null signifies separate line segments 

    var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]]; 

    $.plot("#placeholder", [ d1, d2, d3 ]); 

    // Add the Flot version string to the footer 


}); 
} 
</script> 
+0

将是很好,如果你可以接受任何低于答案中获得的价值。 – vooD

回答

4

你有一个问题,在这一行代码:

var x=document.getElementById('txt_name'); 

这里的问题是,的document.getElementById(“txt_name”)返回Element对象,用户输入的不是一个值。为了抢一个值,你需要调用value属性是这样的:

var x=document.getElementById('txt_name').value; 

固定代码:

<input type="number" id="txt_name"> 
<input type="submit" value="Submit" onclick=" return hello();"> 
<script type="text/javascript"> 

var d1 = []; 
function hello(){ 

$(function() { 


    var x=document.getElementById('txt_name').value; 
    var y=parseInt(x); 
    alert(y); 
    d1.push([x,x]); 
    d1.push([x+5,x+5]); 

    var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]]; 

    // A null signifies separate line segments 

    var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]]; 

    $.plot("#placeholder", [ d1, d2, d3 ]); 

    // Add the Flot version string to the footer 


}); 
} 
</script> 

更多herehere

+2

虽然,它可能会帮助OP将片段与一些解释进行配对。你改变了什么?为什么? –

+0

我更新了答案。现在好点了吗? – vooD

+0

对不起,迟到的回复,一切工作正常 – user3216573

3

你必须从输入

var x=document.getElementById('txt_name').value; 
var y=parseInt(x, 10);