我有一个具有输入掩码日期格式的表。当我单击添加新行时,将添加新行,但不会添加输入掩码日期格式。我想在每次点击新行时附加输入掩码日期字段。
<table>
<tr>
<td class="centrer">Arrived Date</td>
</tr>
<tr>
<td>
<input type="text" name="datearrive" class="date" /> </td>
<td>
<button type="button" onClick="addRow(this)">ADD ROW</button>
</td>
</tr>
</table>
window.addRow = function addRow(btn) {
var parentRow = btn.parentNode.parentNode;
var table = parentRow.parentNode;
var tr = document.createElement("tr");
var tdDate = document.createElement("td");
var tdButton = document.createElement("td");
var inputDate = document.createElement("input");
var inputButton = document.createElement("button");
inputButton.type = "button";
inputButton.innerHTML = "+";
inputButton.onclick = function() {
addRow(this);
};
tdDate.appendChild(inputDate);
tdButton.appendChild(inputButton);
table.appendChild(tr);
}
//input mask
jQuery(function($) {
$(".date").mask("99/99/9999");
});
任何帮助都将不胜感激。
答案 0 :(得分:0)
您必须将.mask调用应用于每个新添加的日期元素。
e.g。像这样的东西:
tdDate.appendChild(inputDate);
tdButton.appendChild(inputButton);
table.appendChild(tr);
$(inputDate).mask("99/99/9999"); << do this last
注意:
date
类分配给代码中的任何内容:)$(function() {
$(document).on('click', '.add').click(function() {
var $table = $(this).closest('table');
var $row = $('<tr><td><input type="text" name="datearrive" class="date" /> </td><td><button type="button" class="add">ADD ROW</button></td></tr>')
$table.append($row);
$(".date", $row).mask("99/99/9999");
});
$(".date").mask("99/99/9999");
});
上面的示例使用附加到文档的委托事件,以便在新行中动态添加按钮时触发。
使用JSFiddle:https://jsfiddle.net/0t3zyh7q/