2011-11-10 6 views
0

私はユーザーがドメインオブジェクトを編集して更新できる編集フォームを持っています。サイトhttp://jetlogs.org/2007/12/16/jquery-disabled-and-readonly-inputs/ に基づいて、私は読み取り専用を作成し、jqueryのを使用して有効にテキストボックスまたはテキストフィールドをクリックすることができますGrailsでtextFieldを無効/有効にしますか?

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

が、すべてのテキストフィールドにIDと機能を付与することは非効率的である:私はこの形式ですさまざまなテキストボックスを持っています。

各要素にアクセスして無効化および有効化アクションを提供する方法はありますか?

答えて

0

など。この(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> 

この方法は、最初に読み取り専用に設定する各テキストフィールドを提供し、各テキストフィールドは、同様に、それに関連付けられたクリックを有しています。

は、いくつかのより多く検索した後、私が見つかりました: How to select all textareas and textboxes using jQuery?

おかげ

関連する問題