3 回答
TA贡献1883条经验 获得超3个赞
您可以使用setAttribute和removeAttribute属性函数来切换禁用状态。
const test = document.querySelector('#wasa');
const date = document.querySelector('#date');
test.addEventListener('click', function() {
if (date.hasAttribute('readonly')) {
date.removeAttribute('readonly')
} else {
date.setAttribute('readonly', 'readonly');
}
})
#wasa {
padding: 1em;
}
<div id='wasa'>
<input id="date" type="date" value="2018-07-22">
</div>
TA贡献1725条经验 获得超7个赞
您可以使用更改事件来恢复readonly字段的状态。
从我的评论...
取消切换 - 通过readonly在字段上包含属性以只读方式启动
<input type="date" value="2018-07-22" readonly>
然后,当单击 div 时,使用date.removeAttribute('readonly')Nidhin 显示的方法删除 readonly 属性。
何时挑选新日期时,会触发更改事件; 将更改侦听器附加到日期字段。在该侦听器中(当字段更改时)然后添加 readonly 属性。
需要注意的是一个change没有始终点火的瞬间值的变化,它可能不会,直到你解雇离开现场(模糊),所以你可能需要进一步适应下面的代码,但它是当你通过改变数值解雇日期选择器。
const dateDiv = document.getElementById('wasa');
const date = document.querySelector('input[type=date]', dateDiv);
dateDiv.addEventListener('click', function() {
date.removeAttribute('readonly');
});
date.addEventListener('change', function() {
date.setAttribute('readonly','');
});
#date {
background: transparent;
border: none;
}
#date[readonly] {
background-color: lightblue;
}
<div id='wasa'>
<input id="date" type="date" value="2018-07-22" readonly>
</div>
添加回答
举报