熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

readonly和disabled區別詳解

2013-11-15 12:00:01  來源: JSP教程 

  在html中input的屬性readonly和disabled讓很多用戶都覺得是一樣的下面我來給大家介紹readonly和disabled區別有需要了解的朋友可參考

 

  先看input的屬性定義
 
屬性 值 描述

  disabled  disabled 當 input 元素首次加載時禁用此元素這樣用戶就無法在其中寫文本或選定它 
注釋不能與 type="hidden" 一同使用
 
readonly  readonly  指示此域的值不能被修改 
注釋僅可與 type="text" 配合使用
 

  另外我再看看這兩個區別先看代碼

  
readonly代碼:<input type="text" name="readonly" readonly="readonly"  />

  readonly不可編輯可復制可選擇可以接收焦點但不能被修改後台會接收到傳值

  disabled代碼: <input type="text"  name="disabled" disabled="disabled" />

  disabled不可編輯不可復制不可選擇不能接收焦點後台也不會接收到傳值

  
我們常常在用戶按了提交按鈕後利用javascript將提交按鈕disabled掉這樣可以防止網絡條件比較差的環境下用戶反復點提交按鈕導致數據冗余地存入數據庫

  disabled和readonly這兩個屬性有一些共同之處比如都設為true則form屬性將不能被編輯往往在寫js代碼的時候容易混合使用這兩個屬性其實他們之間是有一定區別的

  如果一個輸入項的disabled設為true則該表單輸入項不能獲取焦點用戶的所有操作(鼠標點擊和鍵盤輸入等)對該輸入項都無效最重要的一點是當提交表單時這個表單輸入項將不會被提交

  而readonly只是針對文本輸入框這類可以輸入文本的輸入項如果設為true用戶只是不能編輯對應的文本但是仍然可以聚焦焦點並且在提交表單的時候該輸入項會作為form的一項提交

 代碼如下 復制代碼

  <!DOCTYPE html PUBLIC "//WC//DTD XHTML Transitional//EN" "

  <html xmlns="

  <head>

  <meta httpequiv="ContentType" content="text/html; charset=utf" />

  <title>Untitled Document</title>

  </head>

  <body>

  <form id="form" name="form" method="get" action="">

  <input name="q" type="text" id="q" value="readonly" readonly="true" />

  <input name="q" type="text" disabled="disabled" id="q" value="disabled" />

  <input type="submit" name="Submit" value="Submit" />

  </form>

  </body>

  </html>

  小技巧

  diabled:可用readonly代替backgroundcolor:#cccccc;加上灰色背景色就可以

 代碼如下 復制代碼

  <input id="mytext" type="text" value="我是不能用的">
<input type="button" value="disabled" onClick="javascript: documentallmytextdisabled=false">
<input type="button" value="enable" onClick="javascript: documentallmytextremoveAttribute(disabled)">

  注意documentallmytextdisabled=true表單控件不能用

  documentallmytextdisabled=false表單控件能用

 代碼如下 復制代碼

  <input id="mytext" type="text" value="我是能用的">
<input type="button" value="disable" onClick="if (mytextdisabled==false){ mytextdisabled=true;mytextvalue=我是不能用的;thisvalue=enable} else { mytextdisabled=false;mytextvalue=我是能用的;thisvalue=disable}">

  jquery設置元素的readonly和disabled

  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屬性

  
去除屬性推薦使用removeAttr()這種方式新版本jquery會不支持attr("readonly""")這種寫法


From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20064.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.