Ошибка выбора даты jQuery — n не определено

#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" />
  

http://jsfiddle.net/btc2h/1/