上传文件的input框的change时间只能触发一次的原因
来源:互联网 发布:仁爱路99号碧格网络 编辑:程序博客网 时间:2024/06/05 07:04
html代码:
<tr>
<td><label for="pic" style="font-weight:normal;">图片</label>:</td>
<td colspan="3">
<div class="file-box">
<input type="text" maxlength="50" value="<?PHP echo $threadinfo['pic']?>" name="pic" style="display:inline-block;width:200px;" class="form-control" id="pic">
<a href='JavaScript:;' class="upload" style="display:inline-block;width:60px;" onclick="click_up()">上传</a>
<div style="display:none"><input type="file" id="upload" name="UploadForm[file]" /></div>
</div>
</td>
</tr>
<?=Html::jsFile('/static/admin/js/ajaxfileupload.js')?>
js代码1 [有bug:点击上传一次图片后,再次点击上传图片无效:原因input框的change事件只触发了一次]
这个问题并不是由change事件失效造成的,而是ajaxFileUpload插件造成的,它会把原来的file元素替换成新的file元素,所以之前绑定的change事件就失效了,需要重新绑定一下
<script>
$("input#upload").change(function () {
$.ajaxFileUpload({
url: "/index.php?r=public/upload/upload",
secureuri: false,
data:{'type':'forum','cid':<?php echo intval($threadinfo['cid'])?>},
fileElementId:'upload',
dataType: 'json',
success: function (data, status) {
if (data && data.result == 'Success') {
$("#pic").val(data.url);
$("#pic_show").attr('src',data.url);
return ;
}else{
alert("上传失败");
return ;
}
},
error: function (data, status, e) {
return;
}
});
});
</script>
js代码2[解决办法,再次点击上传时给input框重新绑定change事件]
<script>
function click_up(){
$("input#upload").click(); //添加一个点击事件来触发$(input#upload)的change事件
$("input#upload").change(function () {
$.ajaxFileUpload({
url: "/index.php?r=public/upload/upload",
secureuri: false,
data:{'type':'forum','cid':<?php echo intval($threadinfo['cid'])?>},
fileElementId:'upload',
dataType: 'json',
success: function (data, status) {
if (data && data.result == 'Success') {
$("#pic").val(data.url);
$("#pic_show").attr('src',data.url);
return ;
}else{
alert("上传失败");
return ;
}
},
error: function (data, status, e) {
return;
}
});
});
}
</script>
原文:http://blog.csdn.net/qq_34625397/article/details/53811940
- 上传文件的input框的change时间只能触发一次的原因
- 上传文件的input框的change时间只能触发一次的原因
- 关于input[type=file] change事件只能触发一次的问题
- 【JavaScript】上传文件时监听change事件(只能被触发一次)
- 赋值方式触发input的change事件
- 如何让file input能够实现置空和【异步】上传后相同文件的再次选择触发change
- change事件触发失败的可能原因
- onchange监听input值变化及input隐藏后change事件不触发的原因与解决方法
- html input的file文件输入框onchange事件触发一次失效解决方法
- 使用$.ajaxFileUpload上传时<input type="file">设置的onchange只能执行一次的解决方案
- INPUT[type=file]的change事件不触发问题
- 关于ajaxFileUpload只能上传一次的解决
- 关于ajaxFileUpload只能上传一次的解决
- 关于ajaxFileUpload只能上传一次的解决办法
- 使用setjmp的时候,同一个信号只能触发一次
- input file change事件只触发一次
- input file域的value清空与赋默认值方法,及Jquery中file的change事件只能执行一次,不可多次执行的解决办法
- 关于input的file框onchange事件触发一次失效的新的解决方法
- unity课程1
- android 动态设置背景失效bug
- 当一个service无法启动时,应该怎么去解决,以haproxy为例
- 千万数据规模
- yii返回值为json格式
- 上传文件的input框的change时间只能触发一次的原因
- 并发编程(三):同步容器和并发容器
- 判断字符串是否没有重复字符-LintCode
- 在 html页面中设置图片无法被选中
- ACM_线段树模板(区间更新)
- Hbase 存储读写机制
- Fragment的创建与使用
- Qt中为应用程序添加图片
- 解决UITapGestureRecognizer手势与UITableView的点击事件的冲突