首先說一下readonly屬性的應用場景ide
這裏要說一下disabled和readonly的不一樣,若是一個輸入項的disabled設爲true,則該表單輸入項不能獲取焦點,用戶的全部操做(鼠標點擊和鍵盤輸入等)對該輸入項都無效,最重要的一點是當提交表單時,這個表單輸入項將不會被提交。 this
input標籤須要readonly效果的,一般是type=text/checkbox/radio,下面一一介紹這三種類型的readonly效果實現。spa
<!-- input標籤type=text的readonly效果實現 --> <input type="text" readonly="readonly" value="readonly" />
<!-- input標籤type=checkbox的readonly效果實現 --> <input type="checkbox" name="checkbox1" value="checkbox1" id="red" checked="checked" /> <label for="red">紅色</label> <input type="checkbox" name="checkbox2" value="checkbox2" id="color" /> <label for="color">顏色</label> <script> //JS實現readonly效果 $('input[type="checkbox"]').bind("click", function(){ this.checked = !this.checked; }); </script>
<!-- input標籤type=radio的readonly效果實現 --> <input type="radio" name="radio" value="radio1" id="red" checked="checked" /> <label for="red">紅色</label> <input type="radio" name="radio" value="radio2" id="blue" /> <label for="blue">藍色</label> <script> //JS實現readonly效果 $('input[type="radio"]').each(function(){ if($(this).attr("checked") != "checked"){ $(this).attr("disabled", true); } }); </script>
<!-- textarea標籤的readonly效果實現 --> <textarea readonly="readonly">不可編輯</textarea>
<!-- select標籤readonly效果實現 --> <select name="readonly"> <option value="red" selected="selected">red</option> <option value="green">green</option> <option value="blue">blue</option> </select> <script> //JS實現readonly效果 $('select').focus(function(){ this.defaultIndex = this.selectedIndex; }); $('select').change(function(){ this.selectedIndex = this.defaultIndex; }); </script>
若是值是固定的話,傳輸參數也能夠經過設置隱藏域實現,讓本來顯示的disabled爲true就行,如:code
<!-- 設置隱藏域,傳輸數據 --> <input type="hidden" name="hide" value="hide" /> <input type="text" name="hide" value="hide" disabled="disabled">
readonly的展現效果沒disabled好,disabled讓用戶知道這是不可編輯的,而readonly會給用戶一種錯覺。orm