无法将值传递给函数

时间:2012-10-25 13:55:04

标签: javascript

我有一个函数draw_integer(n,s,x,y,plotx),它在坐标(x,y)中的大小为s的HTML5画布上绘制一个整数n,我在另一个函数draw_num中调用此函数()如下,
(plot0,数字和大小是画布,数字和大小输入字段的相应id, 函数drawnum()正在通过onclick事件触发。)

function drawnum() {
    var n = document.getElementById('number').value;
    var s = document.getElementById('size').value;
    console.debug(n,s);
    draw_integer(n,s,100,100,plot0);   // this  doesn't get executed
    }   

function draw_integer(n,s,x,y,plotx){ //lots of code }

在drawum下调用的draw_integer函数没有被执行,我无法识别的问题是什么。

使用console.debug()返回用户输入的相应的数字和大小值,如果我使用draw_integer(3,100,100,100,plot0)(绘制大小为100的数字3)而不是draw_integer(n,s,100,100, plot0)它有效。

这意味着在将可变n和s从drawum()传递给draw_integer()时会发生一些错误。

认为这可能是由于变量的局部范围所致,我试过了。

var n = document.getElementById('number').value;
var s = document.getElementById('size').value;

function drawnum() {
console.debug(n,s);
draw_integer(n,s,100,100,plot0);   // this  doesn't get executed
}   

function draw_integer(n,s,x,y,plotx){ //lots of code }

但这也不起作用。

你可以帮助我或建议一个更好的方法来解决这个问题。

1 个答案:

答案 0 :(得分:1)

var n = document.getElementById('number').value;
var s = document.getElementById('size').value;

上面的变量ns是字符串而不是数字。您需要使用parseFloat或parseInt进行转换。

var n = parseInt(document.getElementById('number').value, 10);
var s = parseInt(document.getElementById('size').value, 10);