使用input的disable和readonly两个属性。
先来看下二者的区别:
<input
type=
"text
"
readonly=
"true
"
value=
"这是readonly的!
">
<input
type=
"text
"
disabled=
"true
"
value=
"这是disabled的!
">
可以看到,虽然两种都是让input的内容不能被用户编辑,但是对于后期的美工处理就有问题了!
例如:
<style>
input
{
color:blue
}
</style>
只有readonly的那个文本是蓝色的!
disabled是按系统设置的disabled颜色来设置前景色的,css对其无效!
另外,readonly和disabled还有一个不同点就是,当input属性为readonly时,提交表单是可以获得input的内容。
如果是disabled则不能获得所提交的内容,返回值全部为null,所以此处需要注意。
慎用readonly和disabled,指定了disabled的表单,在submit时,不会把它的值传出去。
例如,有两个text,一个是readonly一个是disabled,submit后,只能发送那个不是disabled的。
注意地址栏的值.
要保存到本地,因为submit了,不然,看不到效果。
1、input框设置了readonly属性。readonly属性把input框设置成了只读,无法输入。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框无法输入内容。