我有一个我想运行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变量,如下所示:

form = {
  version: '1.0.0',
  ...alot of functions...
  saveFile : function(callback,p){
    .................
  }
}

最佳答案

formonchange处理程序中的保留字。只需重命名变量,它将起作用:

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"/>

09-27 22:01