input/select/textarea標籤的readonly效果實現

首先說一下readonly屬性的應用場景ide

  1. 表單中,不能編輯對應的文本,可是仍然能夠聚焦焦點
  2. 在提交表單的時候,該輸入項會做爲form的一項提交(目的)

這裏要說一下disabled和readonly的不一樣,若是一個輸入項的disabled設爲true,則該表單輸入項不能獲取焦點,用戶的全部操做(鼠標點擊和鍵盤輸入等)對該輸入項都無效,最重要的一點是當提交表單時,這個表單輸入項將不會被提交。 this

input標籤實現readonly效果

 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效果實現 -->
<textarea readonly="readonly">不可編輯</textarea>

select標籤實現readonly效果

<!-- 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

相關文章
相關標籤/搜索