在jquery中动态生成的表单不会在onchange上调用函数

时间:2014-04-08 22:41:58

标签: jquery ajax forms dynamic onchange

很抱歉打扰你,但我无法弄清楚为什么函数" 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);


        }

        });

当我点击上传文件时,永远不会调用该函数。更糟糕的是,我还收到语法错误&#34; Uncaught SyntaxError:Unexpected token}&#34;在一条没有任何代码的行上。

任何提示?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我在这里至少看到一个引用问题......

// replace
pictureform += "<input type='file'...
// by 
pictureform += "<input type='file' id='inp1'  name='fileToUpload"+dID+"[]' onchange=\"fileUpload('picup"+dID+"','pictureupload.php','upload"+dID+"','picup"+dID+"');\"/></br>";

在指令末尾加上分号,它会留下一些语法错误风险