关于 HTML <label> 标签的 for 属性的用法,和修改上传控件的样式
W3C中的定义和用法
for 属性规定 label 与哪个表单元素绑定。
<!--label标签for 属性规定 label 与哪个表单元素绑定。-->
<label for="male">Male</label>
<input type="radio" name="sex" id="male" />
<br />
<label for="female">Female</label>
<input type="radio" name="sex" id="female" />
label的for属性绑定效果
这种情况下,点击 “关联按钮” 就会触发input的点击事件getA(),从而弹出 ‘ok’ 。
<input id="btnA" onclick="getA()" hidden="hidden" /> <label for="btnA"> <span>关联按钮</span> </label> <script> function getA() { alert('ok'); } </script>
我第一次是用在了修改上传控件的样式上,感觉效果很好
用Label的for属性绑定表单控件input,然后隐藏掉上传控件,用label中的一张图片代替上传控件,这时候,点击图片,就相当于点击了上传控件
<!--图片上传并即时显示-->
<input type="file" class="imgInput" id="imgUp" multiple="multiple" style="width: 0px;" />
<!--用for属性绑定file控件-->
<label for="imgUp">
<img src="/file/sys.png" alt="" width="100" />
</label>
<div id="xs"></div>
<div id="imgInfo"></div>
<script>
$(".imgInput").change(function () {
//清空上一次选中的图片信息
$("#xs").empty();
$("#imgInfo").empty();
//获取文件上传域内输入的多个文件
var fileList = this.files;
//遍历每个文件
for (var i = 0; i < fileList.length; i++) {
//展示上传图片
var ImgControls = new Image();
ImgControls.className = "img" + i;
ImgControls.width = 100;
document.getElementById("xs").appendChild(ImgControls);
$(".img" + i + "").attr("src", URL.createObjectURL($(this)[0].files[i]));
//展示上传文件的信息
var file = fileList[i];
div = document.getElementById("imgInfo");
div.innerHTML += "第" + (i + 1) + "个文件 文件名:" + file.name + " 文件类型:" + file.type + " 文件大小:" + file.size + "<br/>";
}
});
</script>

浙公网安备 33010602011771号