html页面input框输入不了,input框不能输入问题

在编写登录页面时遇到input框无法输入的问题。主要可能由readonly属性、font-size设为0、被其他元素遮挡、用户不可选中文本设置及return false清除默认事件导致。文中详细分析了这些原因,并提供了相应的解决方法。通过排查,发现是由于input框被z-index为负值的元素挡住,删除该属性后恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

input框不能输入问题

今天在写程序设计登录页面的时候遇到了一个问题:输入框不能输入!

就是我写着写着想测试一下功能,就发现输入框不能输入了。???还能出现这种问题??就很疑惑,然后就搜了搜无法输入的原因。主要有如下情况:

1. input框设置了readonly属性

这个就很好理解了,readonly属性把input框设置成了只读,就不可以输入了

eg:

只读字段是不能修改的。不过,用户仍然可以使用 tab 键切换到该字段,还可以选中或拷贝其文本。

readonly 属性可以防止用户对值进行修改,直到满足某些条件为止(比如选中了一个复选框)。然后,需要使用 JavaScript 消除 readonly 值,将输入字段切换到可编辑状态。

readonly 属性可与 或 配合使用。

2. input框自身设置font-size为0

这种情况比较少见,但是有些时候,为了消除span元素之间的间隔会让font-size为0,此时input框应该是内容区为0*0个像素,如果强行设置input宽高,这时就算input框显示了,因为font-size为零,就啥也输不进去。

3. input框被其他元素挡住

这种情况大致是因为浮动和z-index引起的,它的特点是即使点击input元素也不会出现选中状态,只要认真排查一下html的结构合不合理,就可以找到问题。

4. 设置了用户不可选中文本

可能会因为浏览器的一些适配问题,导致你设置的user-select:none;影响到了input框的正常事件

5. return false;的使用清除了input框的默认事件

我们知道使用stopPropagation(); 可以阻止默认的冒泡事件,使用preventDefault();可以消除默认事件,但是在使用中贪图方便直接用return false;来代替以上两种方法,阻止默认事件用reutrn false,但是在jquery中,reutrn false;既阻止了冒泡,又消除了默认事件,如果不清楚这一点很有可能在使用on绑定事件时,使用reutrn false;消除冒泡的时候也消除了默认事件,导致input框无法输入内容。

仔细看了自己的代码后发现就是第三种错误:input框被其他元素挡住。

#container{

background:url(img/bj02.jpg);

width:100%;

height:100%;

background-size:100%;

opacity:0.5;

position:absolute;

background-attachment:fixed;

z-index:-1;

}

后来将z-index删除后就可以正常运行了

标签:false,默认,readonly,不能,input,输入,size

来源: https://www.cnblogs.com/bell-ld/p/14076232.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值