Javascript 在Firefox中执行对field.onchange的引用

Javascript 在Firefox中执行对field.onchange的引用,javascript,firefox,reference,onchange,executequery,Javascript,Firefox,Reference,Onchange,Executequery,我有一个HTML代码,它从表单调用javascript函数,使用: <form name="f" id="f" ...> <input name="myField" onchange="doFunct(f.myField.value,f.yourField);" /> <input name="yourfield" onchange="doFunct(f.yourField.value,f.anotherField);" /> ... 这在Safar

我有一个HTML代码,它从表单调用javascript函数,使用:

<form name="f" id="f" ...>
  <input name="myField" onchange="doFunct(f.myField.value,f.yourField);" />
  <input name="yourfield" onchange="doFunct(f.yourField.value,f.anotherField);" />
...
这在Safari、Opera和Chrome中运行良好。它在FireFox中失败,并出现错误:

错误:dest.onchange不是函数

关于如何在FireFox中从javascript执行dest.onchange有什么建议吗


我需要这种功能来将更改级联到输入表单中的字段。

要执行事件,不要向其添加“on”前缀,只需运行dest.change

从更多的研究中可以看出,在我的O'Reilly JavaScript袖珍参考资料中,我发现有一段写道:

空和未定义

JavaScript关键字null是一个特殊值,表示没有值。如果变量包含null,则知道它不包含任何类型的有效值。JavaScript中还有一个特殊值:未定义的值。这是使用未声明或未初始化的变量或使用不存在的对象属性时返回的值。此值没有JavaScript关键字

在使用alertdest.onchange进行了一些测试之后,我发现Firefox并不是抱怨每次调用dest.onchange,而是抱怨那些未定义的错误。显然是Grrrr!Firefox没有收到备忘录:[此值没有JavaScript关键字。]

如果我更改代码以测试dest.onchange!==未定义Firefox很高兴,但Safari、Opera和Chrome在测试中失败了。如果我按如下所示更改代码,它在所有四种浏览器中都能工作

if ( (dest.onchange !== null)                // test for safari, chrome, opera
     && (dest.onchange !== undefined) ) {    // test for firefox
    //we have an onchange function, so let's do it!
    dest.onchange();
}

我花了8个小时想弄明白为什么Firefox玩得不好。

事实上,这不是真的。这也给出了一个错误:error:dest.change不是一个函数
if ( (dest.onchange !== null)                // test for safari, chrome, opera
     && (dest.onchange !== undefined) ) {    // test for firefox
    //we have an onchange function, so let's do it!
    dest.onchange();
}