2011-11-10 49 views
0

我有一個允許用戶編輯和更新域對象的編輯表單。我有不同的文本框都是這種形式:在Grails中禁用/啓用textField?

<g:textField name="name" value="${managementInstance?.name}" /> 
<g:textField name="websiteUrl" value="${managementInstance?.websiteUrl}" /> 

基於網站http://jetlogs.org/2007/12/16/jquery-disabled-and-readonly-inputs/ 我可以創建一個只讀並單擊啓用文本框或文本框使用jQuery,但給人的ID和功能上每一個文本框上是無效的。

有什麼方法可以訪問每個元素並提供禁用和啓用操作?

回答

0

E.g.這樣的(基於jQuery溶液):

<div> 
    <g:textField name="name" value="${managementInstance?.name}" /> 
    <span class="toggleDisable">Disable</span> 
</div> 
<div> 
    <g:textField name="websiteUrl" value="${managementInstance?.websiteUrl}" /> 
    <span class="toggleDisable">Disable</span> 
</div> 

<script> 
    $(".toggleDisable").click(function() { 
      $(this).parent().find("input").toggleClass("disable"); 
    }); 
</script> 
+0

嘿crudolf。感謝您的迴應。這個方法提供了更多的工作,因爲每個textField元素現在需要有一個與它關聯的類。 – Alex

+0

什麼?我沒有明白你的觀點。什麼類與每個文本字段相關聯?其所有相同.. – Chris

+0

我很抱歉。我說錯了,每個textField現在都有一個元素和關聯的類。如果文本輸入的數量未知,該怎麼辦?需要有一個通用的方法。 – Alex

0
<script> 
$(document).ready(function() 
{ 
    $('input:text').each(function(){ 
      console.log("Hi"); 
      $(this).attr("readonly",true); 
    }); 

    $('input:text').click(function(){ 

      if ($(this).attr("readonly") == true) 
      { 
       $(this).removeAttr("readonly"); 
      } 
    });  
}); 
</script> 

此方法提供了每個TextField對初始地設置爲只讀,並且每個文本字段具有與其以及相關聯的點擊。

搜索更多一些後,我發現:How to select all textareas and textboxes using jQuery?

感謝