Мне нужно отобразить текстовое поле с пиктограммой datepicker, чтобы выбрать дату. В списке значений в текстовом поле будет отображаться обновленная дата.
Моя проблема в том, что если у меня 5 записей, тогда я показываю 5 текстовых полей с пиктограммой datepicker, но значок отображает только первое текстовое поле. не повторяя значки всех текстовых полей.
См. Ниже код:
<c:forEach items="${list}" var="product">
<tr>
<td>${product.prodname}</td>
<td>${product.version}</td>
<td>${product.end_date}</td>
<td><input type="text" id="datepicker" name="new_end_date" value="<jsp:getProperty name="licenseupdate" property="new_end_date" />" style="width:100" />
</tr>
</c:forEach>
Функция JQuery:
$(function() {
$( "#datepicker" ).datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true
});
});
Пожалуйста, сообщите, почему я не получаю повторение выбора даты?
Вы создаете несколько элементов с одним и тем же идентификатором, поскольку элементы ввода создаются в цикле. Идентификатор элемента в документе должен быть уникальным. Используйте значение класса для группировки похожих элементов.
<td><input type="text" class="datepicker" name="new_end_date" value="<jsp:getProperty name="licenseupdate" property="new_end_date" />" style="width:100" />
тогда
$(function() {
$( ".datepicker" ).datepicker({
showOn: "button",
buttonImage: "images/calendar.gif",
buttonImageOnly: true
});
});
Когда используется ID-селектор и есть несколько элементов с одинаковым идентификатором, тогда он будет выбирать только самый первый элемент с идентификатором, поэтому в вашем случае виджет datepicker не был инициализирован для других элементов