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、returnfalse的使用清除了input框的默认事件。使用stopPropagation()。可阻止默认的冒泡事件,使用preventDefault()可消除默认事件。在使用中贪图方便直接用returnfalse来代替以上两种方法,阻止默认事件用reutrnfalse,jquery中,reutrnfalse既阻止了冒泡,又消除了默认事件。不清楚这一点很有可能在使用on绑定事件时,使用reutrnfalse消除冒泡的时候也消除了默认事件,导致input框无法输入内容。
<button id="btn1">按钮1</button><button id="btn2">按钮2</button><br /><textarea id="txt1"></textarea>
<script>
btn1.onclick=()=>txt1.value="文本内容1"
btn2.onclick=()=>txt1.value="文本内容2"
</script>