【发布时间】:2016-11-26 19:21:30
【问题描述】:
我想通过单击带有id='IBrowse' 的图像元素来上传图像,但单击该图像时出现错误。
无法读取 undefined(...) 的属性“目标”(在 Chrome 中)
TypeError: 事件未定义(在 Firefox 中)
<div class="col-md-12 col-sm-12 col-xs-12 form-group has-feedback pull-right bordered">
<img id="HImg" src="~/b/b.jpg" style="height: 120px; max-width: 100%; width: 280px; position:relative", class="img-responsive" />
<img id="IBrowse" src="~/a/a.png" style="position: absolute; width: 20%; top: 5%; left: 17%;" />
@Html.TextBoxFor(m => m.Img, new { @class = "form-control has-feedback-left file btntag", style = "display: none;", @onchange = "open(e)", @type = "file", placeholder = "Upload Image" })
@Html.ValidationMessageFor(m => m.Img, "", new { @class = "text-danger" })
</div>
$(function () {
$('#IBrowse').on('click', function () {
$('#Img').trigger('onchange');
});
});
onchange 事件代码
<script>
var IsUpdate = false;
var open = function (event) {
var input = event.target;
var reader = new FileReader();
reader.onload = function () {
var dataURL = reader.result;
var output = document.getElementById('ImgHTMLElement');
output.src = dataURL;
};
reader.readAsDataURL(input.files[0]);
};
</script>
另外,CSS 不工作:
#IBrowse:hover {
width: 23%;
}
【问题讨论】:
-
你应该考虑使用
URL.createObjectURL(file)而不是使用FileReader
标签: javascript jquery html css asp.net-mvc