element plus 报错 Incorrect use of <label for=FORM_ELEMENT>
时间: 2024-05-18 22:18:20 浏览: 324
在Element Plus中,如果出现错误提示"Incorrect use of <label for=FORM_ELEMENT>",可以参考以下代码实现来解决这个问题:
```html
<el-form-item label="姓名">
<span slot="label"> 姓名
<el-tooltip placement="top">
<div slot="content">
第一行信息<br/>
第二行信息
</div>
<i class="el-icon-question"></i>
</el-tooltip>
</span>
<input type="checkbox" id="check" style="display: none;" @click="ss()"/>
<label :for="'check' + Math.random()" class="mytext">
<img src="img/check.jpg">
</label>
</el-form-item>
```
通过为label的for属性添加一个动态的唯一标识符,比如使用Math.random()生成一个随机数,可以避免"Incorrect use of <label for=FORM_ELEMENT>"错误的出现。这样就可以正常使用label标签与checkbox进行关联了。
同时,如果你在低版本的IE浏览器中遇到了这个问题,可以使用下面的JavaScript代码来解决:
```javascript
function initIE() {
if(document.all && navigator.appVersion.indexOf("MSIE")>-1 && navigator.appVersion.indexOf("Windows")>-1){
var a = document.getElementsByTagName("label");
for(var i=0;i<a.length;i++){
if(a[i].hasChildNodes && a[i].childNodes.item(0).tagName == "IMG"){
a[i].childNodes.item(0).forid = a[i].htmlFor;
a[i].childNodes.item(0).onclick = function(){
var e = document.getElementById(this.forid);
switch(e.type){
case "checkbox":
if ($(e).is(':checked')) {
$(e).prop("checked", false);
}else{
$(e).prop("checked", true);
}
$(e).click();
break;
}
if ($(e).is(':checked')) {
$(e).prop("checked", false);
}else{
$(e).prop("checked", true);
}
}
}
}
}
}
```
将以上代码放置在页面加载完成后执行的地方,如放在<script>标签中或在页面底部添加<script>标签,并调用`initIE()`函数,这样就可以解决IE低版本浏览器不兼容label标签的for属性的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文