2012-05-10 8 views

答えて

2

変更破線へ:

jQuery("#dataTable tr:last").find("input[type='checkbox']").attr("checked", false); 

2つの問題:

  • あなたは、input要素の間違った種類に検索しているが(type=texttype=checkboxとは対照的に)。
  • 属性を設定するにはブール値ではなく文字列を使用していますが、文字列が真実であるため、チェック状態に設定しても問題ありません。

また、.children().children()は不要です。この場合、.find()(またはancestor-descendant)の方がはるかにきれいです。

Demo.

1

ここで働くのコードを参照してください:http://jsfiddle.net/3rLqV/

がremove確認ステータス行を変更するには、次の

jQuery("#dataTable tr:last input[type='checkbox']").removeAttr("checked"); 

あなたの二つの主要な問題は、あなたがtype='text'を探していたことがあったが、代わりにチェックボックスのとcheckedをfalseに設定することはできません。それはそこにあるかどうかです。

+0

jQuery 1.4.4では、 '.attr(" checked "、false)'はこのチェックボックスをオフにします。1.4.4では '.attr'はこの場合プロパティと属性の両方を変更するためです。 http://jsfiddle.net/MMDZX/17/実際の問題は、引用符で囲まれていることです。しかし、.removeAttrは良い代替案です。 –

0

この

// to add new row 
     jQuery("#addRow").click(function() { 
      var jqasdasuery = jQuery("#dataTable tr:last").clone(); 
      jqasdasuery.find('input[type=checkbox]').attr("checked", false); 
      jQuery("#dataTable").append(jqasdasuery); 
      setAttributes(); 
     }); 
0

はクローン後

$(':checkbox',jqasdasuery).attr('checked', false);

を追加してみてください。

0
$(document).ready(function() { 
      $("#addRow").on('click', function() { 
       var jqasdasuery = $("#dataTable tr:last").clone(); 

       $("#dataTable tbody").append(jqasdasuery); 
       $("#dataTable tr:last").find(':checkbox').attr('checked', false); 
       $("#dataTable tr:last").find('select option:first').attr('selected', true); 
       setAttributes(); 
      }); 

      $("#deleteRow").on('click', function() { 
       if ($("#dataTable tr").length === $("#dataTable input:checked").length) { 
        alert("You cant delete all the rows") 
       } else { 
        $("#dataTable").find(':checked').each(function() { 
         $(this).parents('tr').remove(); 
        }); 
       } 

       setAttributes(); 
      }); 
     }); 

     function setAttributes() { 
      $("#dataTable tr").each(function (i) { 
       $(this).find(":checkbox").attr("name", "chk" + i); 
       $(this).find(":text").attr("name", "txt" + i); 
       $(this).find("select").attr("name", "country" + i); 
      }); 

      //$("#dataTable tr:last").find("input[type='text']").attr("checked", "false"); 
     }; 
+0

は、$( "#dataTable tr:last")を使用しません。 setAttributes()関数で最後の行を削除するとチェックが外されるためです。 – Thulasiram

0

最後の行をクローンするときに、チェックボックスのチェック状態を削除します。 。あなたは、以下の行を追加することができます

jqasdasuery.find( "入力[タイプ= 'チェックボックス']")attrが(false 'にチェックします');

するvar jqasdasuery = jQueryの( "#dataTableのTR:最後の")した後、クローン();。

"#addRow"クリック機能。

関連する問題