以前做项目都没有遇到过使用readonly和disabled的情况,最多也只最多disabled是让input无法编辑而已。
今天在做项目的时候,突然发现,input里面的数据无法get以及post,然后使用了disabled的input也无法使用click还有各种事件了。
当时觉得很奇怪,后来在查了相关资料以后,发现了另一个属性readonly
后来经过试验,发现两者的区别是,disabled是完全禁用input,无法点击、编辑、post或get里面的数据。而readonly则只是无法编辑而已,还是可以正常post这些数据的!
$(".online").click(function(){
$(this).find("input").attr("readonly",false);
$(this).find("input").focus();//捕获焦点
$(this).find("input").blur(function(){
$(this).attr("readonly",true);
//并且ajax动态更新数据库
var num = $(this).parent().siblings("td:last").attr("id");
});
以上这段代码大概意思为,点击类为online的dom,然后查找到下面的input标签,并且解除readonly属性,获取到焦点。焦点丢失的时候,查找到类为online的父节点,然后查找到最后一个td,获取他的ID。
问题来了,点击1次,可以正常获取。
但是点击2次的话var num = $(this).parent().siblings("td:last").attr("id");会被获取2次,也就是点多少次,这个就会获取多少次。我不知道这个是clikc事件引起的,其他什么原因引起的。
:( 等我找到原因以后再来说下是什么情况。。。
以下为一些使用方法
Jquery的api中提供了对元素应用disabled和readonly属性的方法,在这里记录下。如下:
1.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属性
2.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属性
评论 (0)