Javascript onchange事件处理程序调用函数失败

Javascript onchange事件处理程序调用函数失败,javascript,dynamic,event-handling,Javascript,Dynamic,Event Handling,我有一个函数,它使用: name = "textBox" + (h) + (j); id = "textBox" + (h) + (j); value = hoursEachDay[j-1]; textBox = "<input type='text' maxlength='6' size='6' name='" + name + "'id='"+ id +"' value='" + value + "' onchange='updateHrs()'>";//or parent.up

我有一个函数,它使用:

name = "textBox" + (h) + (j);
id = "textBox" + (h) + (j);
value = hoursEachDay[j-1];
textBox = "<input type='text' maxlength='6' size='6' name='" + name + "'id='"+ id +"' value='" + value + "' onchange='updateHrs()'>";//or parent.updateHrs(j)
当我运行这个并触发onchange事件处理程序时,我从firebug中得到一个“function not defined”错误。在一位同事的建议下,我已经将updateHrs()更改为parent.updateHrs(),这实际上是因为某种原因而起作用的,直到我尝试将一个变量传递到updateHrs()函数(见上文注释),此时它声明updateHrs(j)未定义

我猜updateHrs函数不知何故被解读为超出了范围,尽管我不确定如何理解。这两个函数都是紧跟在一起的,并且都在标记之前(是的,在它们上面也有一个标记),所以它们不应该有范围问题,我也不知道


感谢您提供的帮助。

是否将
updateHrs()
声明为全局函数?另外,如果在循环中创建这些字段,则要将正确的
j
值传递给函数,它需要是
“'onchange='updateHrs(“+j+””>”
”。(将实际值直接放入输出html中,否则每个字段都会尝试引用相同的全局
j
变量。)@nnnnnn,您应该将其作为answer@Maciej伊布科夫斯基——这不是答案。不管怎样,它都不能解释函数未定义的原因。@nnnnnn它可能在iframe中。没有完整的代码很难说谢谢,这就是问题所在。啊!是的,它是在一个iframe中。我将不得不思考为什么它没有调用,就像我认为的那样,即使有那个错误。
function updateHrs()// or updateHrs(dayOfMonth)
{
    alert("This is the day changed ");
    //or alert("This is the day changed " + dayOfMonth);
    return;
}