クローンされた後にIDを削除しようとしていますが、機能していません。これがあります:
頭:
$(window).load(function() {
$('#datepicker-example7-start').Zebra_DatePicker({
direction: false,
pair: $('#datepicker-example7-end')
});
$('#datepicker-example7-end').Zebra_DatePicker({
direction: true
});
});
体:
<input id="datepicker-example7-start" class="dp-start" type="text" name="datefrom[]" style="width:100%" />
<input id="datepicker-example7-end" class="dp-end" type="text" name="dateto[]" style="width:100%"/>
私のjqueryクローンは次のとおりです。
var elements, templateRow, rowCount, row, className, newRow, element;
var i, s, t;
/* Get and count all "tr" elements with class="row". The last one will
* be serve as a template. */
if (!document.getElementsByTagName)
return false; /* DOM not supported */
elements = document.getElementsByTagName("tr");
templateRow = null;
rowCount = 0;
for (i = 0; i < elements.length; i++) {
row = elements.item(i);
/* Get the "class" attribute of the row. */
className = null;
if (row.getAttribute)
className = row.getAttribute('class');
if (className === null && row.attributes) { // MSIE 5
/* getAttribute('class') always returns null on MSIE 5, and
* row.attributes doesn't work on Firefox 1.0. Go figure. */
className = row.attributes['class'];
if (className && typeof(className) === 'object' && className.value) {
// MSIE 6
className = className.value;
}
}
/* This is not one of the rows we're looking for. Move along. */
if (className !== "row_to_clone_fw_emp")
continue;
/* This *is* a row we're looking for. */
templateRow = row;
rowCount++;
}
if (templateRow === null)
return false; /* Couldn't find a template row. */
/* Make a copy of the template row */
newRow = templateRow.cloneNode(true);
/* Change the form variables e.g. price[x] -> price[rowCount] */
elements = newRow.getElementsByTagName("input");
for (i = 0; i < elements.length; i++) {
element = elements.item(i);
s = null;
s = element.getAttribute("name");
if (s === null)
continue;
t = s.split("[");
if (t.length < 2)
continue;
s = t[0] + "[" + rowCount.toString() + "]";
element.setAttribute("name", s);
element.value = "";
/* element.find('#datepicker-example7-start').removeAttr('id');
element.find('#datepicker-example7-end').removeAttr('id'); */
}
templateRow.parentNode.appendChild(newRow);
$('.dp-start:last').Zebra_DatePicker({
direction: false,
pair: $('.dp-end:last')
});
$('.dp-end:last').Zebra_DatePicker({
direction: true
});
return true;
日付ピッカーを頭に呼び出した後、クローンメソッドで再度呼び出す前にこれを配置しようとしましたが、機能しません:
$('input#datepicker-example7-start').RemoveAttr('id');
$('input#datepicker-example7-end').RemoveAttr('id');
と
$('input.dp-start:last').RemoveAttr('id');
$('input.dp-end:last').RemoveAttr('id');
必要なのは、head タグで datepicker を呼び出した後に id を削除することです。これにより、[行の追加] 送信ボタンをクリックして clone メソッドを呼び出したときに、id で入力タグが複製されず、カレンダー アイコンが再度読み込まれなくなります...カレンダー アイコンがすべてのクローンと重なってクリックできなくなり、テキスト ボックスがクリックされた場合にのみカレンダーが読み込まれるようです (1 行目、テキスト ボックスとカレンダー アイコンの両方がクリック可能です)。
手伝ってくれてありがとう!