form中的input可以设置为readonly 和 disable,二者有什么区别?

Jquery的api中提供了对元素应用disabled和readonly属性的方法,在这里记录下。如下:

  • readonly
$('input').attr("readonly","readonly")//将input元素设置为readonly  
$('input').removeAttr("readonly");//去除input元素的readonly属性  

if($('input').attr("readonly")==true)//判断input元素是否已经设置了readonly属性  

//对于为元素设置readonly属性和取消readonly属性的方法还有如下两种:  
$('input').attr("readonly",true)//将input元素设置为readonly  
$('input').attr("readonly",false)//去除input元素的readonly属性  

$('input').attr("readonly","readonly")//将input元素设置为readonly
$('input').attr("readonly","")//去除input元素的readonly属性  
  • disabled
$('input').attr("disabled","disabled")//将input元素设置为disabled  
$('input').removeAttr("disabled");//去除input元素的disabled属性  
  
if($('input').attr("disabled")==true)//判断input元素是否已经设置了disabled属性  
  
//为元素设置disabled属性和取消disabled属性的方法还有如下两种:  
$('input').attr("disabled",true)//将input元素设置为disabled  
$('input').attr("disabled",false)//去除input元素的disabled属性  
  
$('input').attr("disabled","disabled")//将input元素设置为disabled  
$('input').attr("disabled","")//去除input元素的disabled属性  

相同点

  • readonly和disabled都是可以禁止用户更改表单中的内容。比如都设为true,则form属性将不能被编辑

不同点

  • readonly只针对input(text/password)和textarea有效,而disabled对于所有的表单元素都有效,包括select,radio,checkbox等。
  • 表单在使用GET或POST方式提交时,表单元素在使用了readonly后,值可以传递到后台;而表单元素在使用disabled后值不可以传递到后台。
  • 所有控件都有disabled 属性,但是不一定有readonly属性;点击被readonly掉的按钮照样可以触发事件,但是被disabled掉的按钮就无法使用了不管上面有没有事件。

小技巧: 可以给readonly设置一个css样式:
style=“background-color:#cccccc;”
这样readonly的显示效果就和disable一样了

如果一个输入项的disabled设为true,则该表单输入项不能获取焦点,用户的所有操作(鼠标点击和键盘输入等)对该输入项都无效,最重要的一点是当提交表单时,这个表单输入项将不会被提交。

而readonly只是针对文本输入框这类可以输入文本的输入项,如果设为true,用户只是不能编辑对应的文本,但是仍然可以聚焦焦点,并且在提交表单的时候,该输入项会作为form的一项提交。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老周聊架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值