我试图在用户上传时调用函数显示上传的图像预览,当我将它用于特定的DIv ID时,它工作正常但是当我尝试创建一个通用函数时,它给了我未捕获引用的错误每次上传文件时都会出错。
我的代码如下。 Java脚本:
<script type="text/javascript">
$(function showimage (v) {
$('#'+v).change(function () {
if (typeof (FileReader) != "undefined") {
var value = v.value;
var dvPreview = $("#dvPreview");
dvPreview.html("");
document.getElementById(v).innerHTML = "mycontent";
var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.jpg|.jpeg|.gif|.png|.bmp)$/;
$($(this)[0].files).each(function () {
var file = $(this);
if (regex.test(file[0].name.toLowerCase())) {
var reader = new FileReader();
reader.onload = function (e) {
var img = $("<img />");
img.attr("style", "height:100px;width: 100px");
img.attr("src", e.target.result);
dvPreview.append(img);
}
reader.readAsDataURL(file[0]);
} else {
alert(file[0].name + " is not a valid image file.");
dvPreview.html("");
return false;
}
});
} else {
alert("This browser does not support HTML5 FileReader.");
}
});
});
</script>
HTML代码:
<input class="myinput" id="img1" onchange="showimage(img1)" type="file" name="profile_image" value="Browse.." />
</p><div id="dvPreview"> </div> </td></label>
任何想法是什么问题???
答案 0 :(得分:0)
在加载DOM之前包含javascript代码。这应该工作。 将它包含在body标记的末尾或head部分中(如果javascript代码很小且没有bug的可能性)