1

追加ボタンをクリックすると、最後の行のクローンを使用して新しい行を追加していますが、最後の行で既にチェックされている場合はチェックボックスをオフにしたいです。

コード全体を確認してください: http://jsfiddle.net/MMDZX/

4

6 に答える 6

2

破線を次のように変更します。

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

2 つの問題:

  • 間違ったタイプの入力要素 (type=textではなくtype=checkbox) を検索しています。
  • 属性を設定するためにブール値ではなく文字列を使用しています。文字列は真実であるため、チェック済みの状態に設定していれば問題ありません。

また、.children().children()不要です。.find() (または祖先-子孫) は、この場合、はるかにきれいです。

デモ。

于 2012-05-10T14:58:49.550 に答える
1

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

remove checked ステータス行を次のように変更します。

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

あなたの 2 つの主な問題は、チェックボックスの代わりに を探していたことと、 false にtype='text'設定できないことです。checkedあるかないかのどちらかです。

于 2012-05-10T14:59:28.333 に答える
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");
        };
于 2012-05-10T15:14:45.657 に答える
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();
        });
于 2012-05-10T14:59:42.870 に答える
0

追加

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

クローンの後。

于 2012-05-10T14:59:58.227 に答える
0

最後の行を複製するときにチェックボックスのチェック状態を削除します。

次の行を追加できます。

jqasdasuery.find("input[type='checkbox']").attr('checked',false);

var jqasdasuery = jQuery("#dataTable tr:last").clone();

「#addRow」クリック機能で。

于 2012-05-10T15:26:19.597 に答える