Chrome中input type="date"的readonly属性失效,咨询解决办法
Chrome中date类型input设置readonly无效的解决办法
Chrome浏览器里,给type="date"的input设置readonly属性后,用户仍能打开日期选择器修改内容,这是浏览器对该类型控件的特殊处理导致的。可以用以下几种方法解决:
用
disabled属性替代:
这是最直接的方式,设置后完全无法交互,缺点是该元素的值不会随表单提交。代码示例:<input type="date" disabled>CSS禁用交互:
通过pointer-events: none阻止点击和交互,搭配opacity降低透明度提示不可编辑,同时保留readonly确保值能正常提交:<input type="date" readonly style="pointer-events: none; opacity: 0.6;">JS阻止交互行为:
如果需要保留元素的视觉状态,又要阻止编辑,可以用JS监听关键事件:const dateInput = document.querySelector('input[type="date"]'); // 聚焦后立即失焦,阻止打开日期选择器 dateInput.addEventListener('focus', () => dateInput.blur()); // 阻止键盘按键操作 dateInput.addEventListener('keydown', (e) => e.preventDefault());
内容的提问来源于stack exchange,提问作者dafunk
相关产品推荐
相关产品推荐

