2015-12-02 5 views
2

Для отображения календаря Jquery с месяцем только я использовал CSS, какпоказать скрыть JQuery календарь DatePicker

<style> 
     .ui-datepicker-calendar 
     { 
     display:none 
     } 
    </style> 

Но это CSS применяется для завершения страницы и другие datepicker управлений стали monthpicker. Как ограничить его только одним элементом управления.

<input data-val="true" id="StartMonth" name="StartMonth" type="text" value="" /> 
    $('#StartMonth').focusin(function() 
    { 
     $('.ui-datepicker-calendar').css("display", "none"); 
     $('#StartMonth').datepicker('setDate', new Date(year, month, 1)).trigger('change'); 
    }); 
+0

решение здесь, но создает проблемы для меня http://stackoverflow.com/questions/2208480/jquery-ui-datepicker-to-show-month-year-only?rq = 1 – user334223

+0

Оставьте свой полный код или создайте проблемный скрипт. –

ответ

2

С небольшой помощью запроса и может достичь нужного результата. Пожалуйста, следуйте за скрипкой.

http://jsfiddle.net/DBpJe/7376/

$('#startDate').focusin(function(){ 
    $('.ui-datepicker-calendar').css("display","none"); 
}); 
+0

help, Когда я применил вышеупомянутое решение, «.ui-datepicker-calendar» получает hiiden только тогда, когда я меняю месяц или год в календаре, при показе загрузки страницы календарь не скрыт. – user334223

+0

Убедитесь, что идентификатор, который вы используете в jquery, относится к вашему полю ввода. – Help

+0

$ ('# StartMonth'). Focusin (function() { $ ('. Ui-datepicker-calendar'). Css (" display "," none "); $ ('# StartMonth'). Datepicker ('setDate', новая дата (год, месяц, 1)). Trigger ('change'); }); – user334223

0

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

например

$(#mycalendarDiv .ui-datepicker-calendar).css("display","none"); 
1

Вы должны добавить класс (который скрывает .ui-DatePicker-календарь) до $ (вход) .datepicker ("виджет") в пределах beforeShow вариант Datepicker, а затем удалите этот класс в пределах onClose datepicker опция.

$('.datepicker-without-calendar').datepicker({ 
 
    changeMonth: true, 
 
    changeYear: true, 
 
    showButtonPanel: true, 
 
    dateFormat: 'MM yy', 
 
    beforeShow: function(input) { 
 
    $(input).datepicker("widget").addClass('hide-calendar'); 
 
    }, 
 
    onClose: function(dateText, inst) { 
 
    $(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1)); 
 
    $(this).datepicker('widget').removeClass('hide-calendar'); 
 
    } 
 
}); 
 

 
$('.datepicker').datepicker();
.hide-calendar .ui-datepicker-calendar{ 
 
    display: none; 
 
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css"> 
 
<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
 
<script src="https://code.jquery.com/ui/1.12.0/jquery-ui.js"></script> 
 

 
<input class="datepicker-without-calendar" type="text" /> 
 
<input class="datepicker" type="text" />

+1

Это должен быть комментарий, а не ответ. Если это дублированный вопрос, тогда [проголосовать за закрытие] (http://stackoverflow.com/help/privileges/close-questions) как таковой и/или оставить комментарий после того, как вы [заработаете] (http: //meta.stackoverflow .com/q/146472) достаточно [репутации] (http://stackoverflow.com/help/whats-reputation). Если вопрос не является дубликатом, то адаптируйте ответ на этот конкретный вопрос. –