$(function () {
$("#addButton").on("click", function () {
var newRow = $(".addrows").first().clone().addClass("newAdded"); newRow.appendTo("#TextBoxesGroup");
});<form enctype="application/x-www-form-urlencoded" action="" method="post">
<table id="TextBoxesGroup" style="width:auto;margin:0 auto;" >
<tr class="addrows"><td class="required">
Start Time:<br/>
<input type="text" name="StartTime[]" id="StartTime" value="" class="time" size="5">
<button name="starttimenow" id="starttimenow" type="button" onclick="var currentDate = new Date(); var hours = currentDate.getHours(); var minutes = currentDate.getMinutes(); if(hours < 10) { hours = '0' + hours; } if(minutes < 10) { minutes = '0' + minutes; } $('#StartTime').val(hours + ':' + minutes);">Now</button>
</td>
<td class='required' colspan="2">Start Date:<br/>
<input type="text" name="StartDate[]" id="StartDate" value="" class="date" autocomplete="off" size="6">
<button name="startdatetoday" id="startdatetoday" type="button" onclick="var currentDate = new Date(); var month=currentDate.getMonth()+1; if(month < 10) { month = '0' + month; } var day = currentDate.getDate(); if(day < 10) { day = '0' + day; } var year = currentDate.getFullYear(); $('#StartDate').val(day + '/' + month + '/' + year)">Today</button>
</td>
<td class='required' >End Time:<br/>
<input type="text" name="EndTime[]" id="EndTime" value="" class="time" size="5">
<button name="endtimenow" id="endtimenow" type="button" onclick="var currentDate = new Date(); var hours = currentDate.getHours(); var minutes = currentDate.getMinutes(); if(hours < 10) { hours = '0' + hours; } if(minutes < 10) { minutes = '0' + minutes; } $('#EndTime').val(hours + ':' + minutes);">Now</button>
</td>
<td class='required' colspan="2" >End Date:<br/>
<input type="text" name="EndDate[]" id="EndDate" value="" class="date" autocomplete="off" size="6">
<button name="enddatetoday" id="enddatetoday" type="button" onclick="var currentDate = new Date(); var month=currentDate.getMonth()+1; if(month < 10) { month = '0' + month; } var day = currentDate.getDate(); if(day < 10) { day = '0' + day; } var year = currentDate.getFullYear(); $('#EndDate').val(day + '/' + month + '/' + year)">Today</button>
</td></tr>
</table>
<table>
<tr>
<td>
<input type="button" id="addButton" value="+" />
</td>
</tr>
<tr><td colspan="18" align="center">
<input type="submit" name="Submit" id="Submit" value="Submit" class="formsubmit">
</td></tr>
</table>
</form>
Выше приведен рабочий пример из моей формы. Мне нужно создать количество полей, когда я нажимаю кнопку +. Новые поля должны быть пустыми. Также, когда я нажимаю кнопку «сейчас / сегодня», мне нужно отображать дату и время в точных полях, отличных от первого поля.
Пожалуйста, помогите мне.
Спасибо!
Очистить клонированные поля ввода с помощью val('')
:
$("#addButton").on("click", function () {
var newRow = $(".addrows").first().clone().addClass("newAdded");
newRow.find(':input').val('');
newRow.appendTo("#TextBoxesGroup");
});
И для ссылки на правильные поля строки используйте классы вместо идентификаторов и prev
способ найти подходящий элемент:
<input type="text" name="StartTime[]" class="StartTime" value="" class="time" size="5">
JS:
$(this).prev('.StartTime').val(hours + ':' + minutes);
использование $(this).prev();
<button name="starttimenow" id="starttimenow" type="button" onclick="var currentDate = new Date(); var hours = currentDate.getHours(); var minutes = currentDate.getMinutes(); if(hours < 10) { hours = '0' + hours; } if(minutes < 10) { minutes = '0' + minutes; } $(this).prev().val(hours + ':' + minutes);">Now</button>
$("#addButton").on("click", function () {
var newRow = $(".addrows").first().clone().addClass("newAdded");
newRow.appendTo("#TextBoxesGroup");
$('.newAdded:last-child input').val('');
});