1

我将上传的文件作为 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>

请帮帮我。

4

2 回答 2

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()您单击链接时,它可以阻止浏览器移动到文档的顶部。

于 2012-12-12T09:56:04.893 回答
1
function ajaxFileUpload(val){
   ...
}

$(document).ready(function(){

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

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

       ajaxFileUpload(val);

   });

});
于 2012-12-12T09:47:50.077 回答