将上传的文件作为参数传递给javascript方法

时间:2012-12-12 09:39:33

标签: javascript jquery

我将上传的文件作为JavaScript方法中的参数传递。然后Firebug抛出类似SyntaxError: illegal character的错误。

<input type="file" id="fileUpload" name="employerLogoUpload" />

<a id="_fileUploadLink" href="#" onClick="javascript:ajaxFileUpload(" +document.getElementById('fileUpload').value+ ");">Upload</a>

请帮帮我。

2 个答案:

答案 0 :(得分:2)

如果要使用内联事件属性,请将onclick处理程序更改为:

onClick="ajaxFileUpload(document.getElementById('fileUpload').value);"

点击后,会调用ajaxFileUpload()函数并将fileUpload元素的当前值传递给它。

你的onclick的方式看起来像这样:

onClick="javascript:ajaxFileUpload("

...之后的+document.getElementById('fileUpload').value+ ");" onclick的一部分 - 该属性以其右引号结束。 (此外,您不需要任何内联事件处理程序中的javascript:部分。)

但是既然你用jQuery标记了这个问题,你可能会丢失内联代码并将以下内容放在元素之后的脚本块中和/或文档就绪处理程序中:

$("#_fileUploadLink").click(function(e) {
    ajaxFileUpload($("#fileUpload").val());
    e.preventDefault();
});

单击链接时,.preventDefault()可以阻止浏览器移动到文档顶部。

答案 1 :(得分:1)

function ajaxFileUpload(val){
   ...
}

$(document).ready(function(){

   $('a#_fileUploadLink').on('click', function(){

       var val = $('#fileUpload').val();  

       ajaxFileUpload(val);

   });

});