问题出在这个属性,解决办法font-size给个值就行了
原始是font-size:0所以什么都输入不进去
//input继承父级的字体大小
font-size: inherit;
通过查看他的父级属性确实设置 font-size:0
总结一下input什么情况不能输入吧:
1. input框设置了readonly属性
只读字段是不能修改的。不过,用户仍然可以使用 tab 键切换到该字段,还可以选中或拷贝其文本。readonly 属性可以防止用户对值进行修改,直到满足某些条件为止(比如选中了一个复选框)。然后,需要使用 JavaScript 消除 readonly 值,将输入字段切换到可编辑状态。
readonly 属性可与 或 配合使用
2. input框自身设置font-size为0
这种情况比较少见,但是有些时候,为了消除span元素之间的间隔会让font-size为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框无法输入内容。