DatePicker ясно, проблема - PullRequest
       8

DatePicker ясно, проблема

3 голосов
/ 25 августа 2011

У меня есть поле со средством выбора даты (jQuery) на странице jsp.

образец (DatePicker)

http://jqueryui.com/demos/datepicker/#icon-trigger

Страница также имеет функцию «очистить» кнопки, которая очищает все текстовые поля на странице и текст, вставленный в эти поля, включая дату, выбранную из средства выбора даты.

очистить код кнопки

<input type="button" name="buttonclear" id="buttonclear" class="buttonstyle_mid" value="Clear"
  onclick="javascript:clearData();" />

JavaScript-код clearData () (для поля даты)

document.getElementById("DateId").value = "";

Поле даты Код

<form:input id="DateId" path="date" class="dateInput" size="11" maxlength="10" readonly="true" />

jQuery DatePicker Code

 <script type="text/javascript">
        jQuery(function($) {
            $('.dateInput').datePicker();
            });
            $('#DateId').datePicker({
                startDate : '01/01/1970',
                endDate : (new Date()).asString()
            });     
    $('#DateId').bind('dpClosed', function(e, selectedDates) {
                var d = selectedDates[0];
                if (d) {
                    d = new Date(d);
                    $('#DateId1').dpSetStartDate(d.addDays(1).asString());
                }
            });
            $('#DateId1').bind('dpClosed', function(e, selectedDates) {
                var d = selectedDates[0];
                if (d) {
                    d = new Date(d);
                    $('#DateId').dpSetEndDate(d.addDays(-1).asString());
                }
            });
 </script>

Мой код имеет существенный недостаток. Если я выберу 1 августа 2011 года из палитры дат и нажму кнопку «очистить». Поле даты очищается, но я не могу выбрать ту же дату снова (т. Е. 1 августа 2011 г. ).

Кнопка Очистить очищает только значение внутри поля, но не очищает дату в базовом DatePicker

Я много гуглил по этой проблеме, но не смог найти правильного решения по этой проблеме. Любая помощь будет принята с благодарностью.

Спасибо

Ответы [ 2 ]

3 голосов
/ 25 августа 2011

Я думаю, вам нужно добавить следующее в вашу функцию clearData():

$('.dateInput').datepicker( "setDate" , null );

Это сбрасывает выбранное значение в окне выбора даты.Просто очистив значение текстового поля, как вы это делаете сейчас, средство выбора даты не обновляется и поэтому не синхронизируется со значением текстового поля.

0 голосов
/ 09 октября 2013

Это помогло мне: $ ('. DateInput'). DatePicker (). DpSetSelected (null, true, false);

...