#javascript #jquery #html #jquery-ui #datepicker
#javascript #jquery #HTML #jquery-пользовательский интерфейс #выбор даты
Вопрос:
Я использую jQuery Datepicker в форме, где поля скрыты, и вы нажимаете на ссылку, чтобы отредактировать значение.
<a class="pickDate edit-link" id="reqSubmitDate">Thu, Feb 27, 2014</a>
<input type="hidden" value="Thu, Feb 27, 2014" id="reqSubmitDateinput" name="RequisitionSubmitDate" class="hasDatepicker">
У меня инициирован выбор даты при скрытом вводе.
$('#reqSubmitDateinput, #orderAckDateinput, #deliveryDateinput').datepicker();
Вы нажимаете на ссылку, и она открывает указатель даты для соответствующего ввода.
$('.pickDate').click(function () {
var id = $(this).attr('id');
var input = id 'input';
$('#' input).datepicker('show');
});
Затем он использует значения по умолчанию, которые я установил, чтобы взять дату, выбранную пользователем, и установить значение скрытого ввода.
$.datepicker.setDefaults({
minDate: 0,
onSelect: function (date) {
var id = $(this).attr('id');
id = id.slice(0, -5);
$('#' id).text(date);
}
});
Кажется, он отлично работает с первыми двумя, но не работает с последним, хотя только идентификаторы отличаются и соответствуют одному и тому же формату. Я получаю:
TypeError: n is undefined jquery.....min.js (line 5)
Кажется, он останавливается на отображении средства выбора.
Я попытался переместить первые два после того, который не работает, чтобы увидеть, была ли проблема с количеством, и это было не так. Я также попытался переместить нерабочий рядом с другими. Не повезло.
jsfiddle в соответствии с запросом: http://jsfiddle.net/ZGD6B /
Комментарии:
1. Пожалуйста, опубликуйте полный пример кода. И, когда это возможно, также добавьте jsFiddle. чистый пример.
2. если что-то не определено, я бы подумал, что один из ваших тегов pickData не имеет идентификатора. Когда возникает проблема, в которой говорится, что вы хотите просмотреть назначения переменных. Что сделало бы его неопределенным. Места, где может быть неопределенный идентификатор. например, не определено «input» = «undefinedinput». Проблема, из-за которой это ПРОЯВЛЯЕТСЯ больше всего:
id.slice(0,-5);
если ID не определен, то будет выдана эта ошибка3. @j08691 jsfiddle.net/ZGD6B
4. @Fallenreaper Я сделал журнал консоли после этого, пытаясь разобраться, и в нем была первая версия идентификатора и 2-я с «вводом».
5. Мне интересно, является ли это ошибкой. Если я удаляю
type="hidden"
со второго ввода, это работает. Если я поменяю местами входные данные и сделаю то же самое, это сработает. Таким образом, похоже, что проблема с последним скрытым вводом возникает при наличии нескольких скрытых полей ввода.
Ответ №1:
Я столкнулся с аналогичными проблемами при использовании скрытых полей с помощью jQuery. Обычно я использовал хак, чтобы скрыть поле, чтобы заставить jQuery сотрудничать:
<input style="height: 0px; width:0px; border: 0px;" id="deliveryDateinput" name="DeliveryDate" value="@Model.GEP.OrderDeliveryDate" />