2012-03-02 8 views
0

を複製、私はbutton inputを持っていると私はこのようにそれを無効にするつもりです:変更属性はそれを

$(document).ready(function() { 
       if ($('#participants tr').length < 3) 
        jQuery("#send").attr('disabled', true); 
       else 
        jQuery("#send").attr('disabled', false); 
      }); 

条件を有効にすると、それが正常に無効になりますが、この部分真実でありますネストされた方法で重複している:

編集:

<form> 
<fieldset> 
<table id="participants"> 
    .... 
</table> 
    </fieldset> 
</form> 

<input type="button" value="send" onClick="sendMail()" id="send" /> 
<fieldset> 
... 
<form> 
<table id="participants"> 
    <tr> 
     <td><a onClick='f(id)' >del</a></td> 
    </tr> 
</table> 
</form> 
</fieldset> 
<input type="button" value="send" onClick="sendMail()" id="send" /> 

このtableは、pの一部の行を持っています参加者はそれぞれの行にデルリンクがあり、データベースとテーブルから参加者を削除します。テーブルの行数が3未満の場合は無効にしますsend button なぜですか?

+3

を試してみてください "" とのattrを設定することができます。それは何を複製するのですか? – Purag

+0

このコードでは別のボタンを複製するものは何も表示されません – XepterX

+0

@Purmou:申し訳ありません!私はその質問を編集した。 –

答えて

1

がUPDATE removeAttr

$(document).ready(function() { 
       if ($('#participants tr').length < 3) 
        jQuery("#send").attr('disabled', disabled); 
       else 
        jQuery("#send").removeAttr('disabled'); 
      }); 

を試してみてください。私はあなたが達成しようとしているものを知らない

、あなたはとてもDOM準備でそれらを有効にするデフォルトではボタンを無効にしませんでしたあなたが何かを見逃しているはずですが、マークアップを変更した場合、あなたが提供したコードと私が理解したところから

<form> 
<fieldset> 
<table id="participants1"> 
    <tr> 
     <td>1</td> 
    </tr> 
    <tr> 
     <td>2</td> 
    </tr> 
    <tr> 
     <td>3</td> 
    </tr> 
</table> 
    </fieldset> 
    <input type="button" value="send" onClick="sendMail()" class="send" /> 
</form> 
<fieldset> 
<form> 
<table id="participants"> 
    <tr> 
     <td>only one</td> 
    </tr> 
</table> 
    <input type="button" value="send" onClick="sendMail()" class="send" /> 
</form> 
</fieldset> 

idsがユニークであり、それぞれの送信ボタンにsendクラスを適用していることに注意してください。フォーム内に送信ボタンも表示されています。

$("form").each(function(){ 
var $this = $(this); 
var trCount = $this.find("table tr").length; 
    console.log(trCount); 
    if(trCount>2){ 
     console.log($this.find(".send")); 
    $this.find(".send").attr("disabled","disabled"); 
    }//else do nothing   
}); 

いただきました上記のコードで何が起こっては、ページ上のすべてのフォーム要素を反復処理し、それらの内側にテーブルを探して、行数がチェックされ、それが無効に指定された長さを超えた場合に従うようjqueryの部分がありますそのフォームのボタン..

DEMO

+0

tnxしかし動作しませんでした! –

+1

あなたは同じIDを持っています – Rafay

+0

しかし私は持っていません! :( –

0

は、あなたがより明確にする必要があり

$('#participants').each(function(){ 

     if ($(this).find('tr').ength < 3) 
      $(this).parents('fieldset').next("#send").attr('disabled', true); 
     else 
      $(this).parents('fieldset').next("#send").attr('disabled', false); 

}); 
+0

tnxに役立つことを願って、うまくいきませんでした! –