0

私は次のことを望んでいます: ユーザーがボタンをクリックすると、ID を 1 増やす必要があります。今では、行の一意の ID に使い慣れた関数を使用し、正しく動作します。ここで、一意の入力フィールドに同じコード スニペットを使用しましたが、これは機能しません。また、次のコードが name 属性で正しく動作するのも奇妙です。

    clone.find('#dsmeta_image_caption').prop('name', 'dsmeta_image_caption[' + row.length + ']'); // we now need to set the new ID for the row - ID's cannot be duplicated. This again will use the row.length

だから私が望むのは、各フィールドIDを1ずつ増やすことです.

コード JS:

function create_row_event(event) {
    // Declared variable
    var row = jQuery('tbody tr.row');
    var clone = row.last().clone(true);

    // Find the cloned fields and reset the values of it
    clone.find('input[type=text], text, textarea, select, input.upload_image').val(''); // Reset the values
    clone.find('.preview_image').attr('src', ''); // Reset the values


    row.parent('tbody.ui-sortable').append(clone); // Append the new row to the body
    clone.prop('id', 'repeatable-[' + row.length + ']'); // we now need to set the new ID for the row - ID's cannot be duplicated. This again will use the row.length
            clone.find('input#dsmeta_image_caption').prop('id', '[' + row.length + ']');


}

ここでコードを見ることができます: http://jsfiddle.net/Caspert/ttgMc/7/

4

1 に答える 1

1

find('#id')IDが重複しているため、操作は機能しません。また、ドキュメントに重複するIDがあるとすぐに、IDベースのセレクター/フィルターが正常に機能することを期待できなくなります。

find('input:text')代わりにegを使用すると、機能します。

于 2013-02-01T21:09:43.703 に答える