2013-03-15 1 views
0

я использую DHTMLX 2.5 календарь. Я привязываю календарь к полю ввода.вопрос с DHTMLX2.5 календарь

<script src="../dhtmlx_suite/js/dhtmlxcommon.js"></script> 
<link rel="stylesheet" type="text/css" href="../dhtmlx_suite/skins/dhtmlxcalendar_dhx_skyblue.css" /> 
<link rel="stylesheet" type="text/css" href="../dhtmlx_suite/css/dhtmlxcalendar.css" /> 
<script src="../dhtmlx_suite/js/dhtmlxcalendar.js"></script> 
<script> 
var myCalendar; 
function doOnLoad() { 
    myCalendar = new dhtmlXCalendarObject(["calendar"]); 

} 

</script> 

    <div style="position:relative;height:280px;"> 
     <input type="text" id="calendar"> 
    </div> 
<script> 
doOnLoad(); 
</script> 

Когда я ввожу некоторую неверную дату «например А» в поле ввода и нажмите на поле ввода, он заменяет значение со строкой 'NaN-NaN-NaN. Как это можно было избежать? и сохранить значение eneted пользователя, как оно есть в текстовом поле. Поэтому, когда в поле ввода есть недопустимая дата, я ожидаю, что всплывающее окно календаря будет игнорировать это и просто открыть текущий месяц.

+0

Вы можете прикрепить событие к календарю. Например, что-то вроде onMonthChanged() и возвращает FALSE. Но чтобы он работал так, как вы хотите, у вас должна быть логическая переменная, которая становится ИСТИНА, когда пользователь фокусирует поле ввода и внутри события, которое вы привязали к календарю, проверяете, является ли переменная TRUE или FALSE. если это TRUE, тогда верните FALSE внутри события. –

ответ

0

Вы можете создать функцию валидатора, которая проверяет, является ли содержимое вашего ввода синтаксически правильным. Если это неверно, вы можете вернуть старое значение на вход и предотвратить другие действия.

Смежные вопросы