【发布时间】:2014-05-21 21:24:04
【问题描述】:
很抱歉打扰您,但我不明白为什么单击输入按钮时没有调用函数“fileUpload()”。
我已将问题与动态生成的表单隔离开来——当表单已经加载到页面上时,fileUpload() 可以工作。
代码如下:
var dID;
var pictureform;
$(document).delegate('.ddxaddpic', 'click', function(){
dID = $(this).prev('.diffddz').find('option:selected').val();
var n =$('this span.addhere form').length;
if ((dID !== "") && (n == 0)) {
pictureform = "<form id='picup"+dID+"' class='picupcl' enctype='multipart/form-data'>"
pictureform += "<input type='file' id='inp1' name='fileToUpload"+dID+"[]' onchange='fileUpload('picup"+dID+"','pictureupload.php','upload"+dID+"','picup"+dID+"');'/></br>"
pictureform +="<input type='hidden' name='filenum' value='"+dID+"'/><input type='hidden' name='clinimg_id' value='"+dID+"'/></form>"
pictureform +="<span id='upload"+dID+"'></span>";
$(this).next('.addhere').append(pictureform);
}
});
当我点击上传文件时,该函数永远不会被调用。更糟糕的是,我还在没有任何代码的行中收到语法错误“Uncaught SyntaxError: Unexpected token }”。
有什么建议吗?
非常感谢您的帮助。
【问题讨论】:
-
你的 onchange 事件被简单的引号包围..因此你需要在其中转义简单的引号或用双引号替换它们
-
另外,如果你使用 jQuery > 1.7,你应该从 .delegate() 切换到 .on()
-
您可能在某处也有语法错误,导致 "Uncaught SyntaxError: Unexpected token } "
标签: jquery ajax forms dynamic onchange