html中输入框为只读状态如何设置

html-css027

html中输入框为只读状态如何设置,第1张

在设计网页时,有时需要将输入框设置为只读状态,即其中的内容不可编辑,实现这种设计的方法有两种:

使用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框无法输入内容。