使用用户输入的数字数据,我试图将该数据发送到使用jQuery的FLOT的函数,然后绘制点。当我单击提交时,警报功能返回“NaN”,但继续绘制其他数据的图形。我会做错什么?我是否需要将输入放在表单中?
<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 :(得分: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>
答案 1 :(得分:3)
您必须从输入中获取值
var x=document.getElementById('txt_name').value;
var y=parseInt(x, 10);