我有一个函数我想运行onChange。这适用于a-tag。但是当我在输入标签上使用它时,它只是说:
form.saveFile不是函数
这有效:
<a onclick="form.saveFile('fec056b774ffefa479c7dd3a632275cb','fec056b774ffefa479c7dd3a632275cb_filetest'); return false;" href="#">Upload file</a>
这不起作用:
<input onchange="form.saveFile('fec056b774ffefa479c7dd3a632275cb','fec056b774ffefa479c7dd3a632275cb_filetest');" id="fec056b774ffefa479c7dd3a632275cb_filetest" class="file" type="file" name="fec056b774ffefa479c7dd3a632275cb_filetest" accesskey="F"/>
两者都调用相同的form.saveFile();功能。
表单变量在包含的js文件中声明,如下所示:
form = {
version: '1.0.0',
...alot of functions...
saveFile : function(callback,p){
.................
}
}
答案 0 :(得分:3)
form
是onchange
处理程序中的保留字。只需重命名您的变量即可:
var frm = {
version: '1.0.0',
saveFile : function(callback,p){
}
};
<input onchange="frm.saveFile('fec056b774ffefa479c7dd3a632275cb','fec056b774ffefa479c7dd3a632275cb_filetest');" id="fec056b774ffefa479c7dd3a632275cb_filetest" class="file" type="file" name="fec056b774ffefa479c7dd3a632275cb_filetest" accesskey="F"/>
答案 1 :(得分:1)
内部表单form
确实引用了特定的form
元素。因此,您需要区分引用form
元素的form
和form
变量。如果您在全局范围内定义了window.form
变量,则可以使用form
来执行此操作。或者你只是重命名它。
答案 2 :(得分:0)
需要更多信息。你在所有浏览器中尝试过吗?它应该工作。如果文本已更改,一旦焦点离开文本框onchange将会发生。尝试使用alert()来测试函数是否真的被调用。你的功能可能有问题。希望这有帮助。