¿Cómo activo un selector de fecha YUI solo por un icono separado, no por el campo de entrada referenciado?
Quiero mostrar un AUI / YUISelector de fechas (Tutorial) esesolamente se activa haciendo clic en el icono correspondiente,no enfocus
oclick
eventos como de costumbre.
var AUI = YUI;
AUI().use('event', 'aui-datepicker', function(A) {
function createCalendar(calendarInputBox) {
var datumInputField = calendarInputBox.one('input.calendar');
var datumInputFieldSelector = '#' + datumInputField.get('id').replace(/:/g, '\\:');
var datepickerIcon = calendarInputBox.one('.calendarInputIcon');
var datepicker = new A.DatePicker({
container : datumInputFieldSelector,
mask : '%d.%m.%Y',
calendar : {
firstDayOfWeek : 1,
},
popover : {
zIndex : 1,
}
});
function updateDatepickerFromInputAndShowDatepicker() {
datumInputField.focus();
datepicker.show();
}
datepickerIcon.on('click', updateDatepickerFromInputAndShowDatepicker);
}
A.all('.calendarInputBox').each(createCalendar);
});
<link href="http://cdn.alloyui.com/2.0.0/aui-css/css/bootstrap.min.css" rel="stylesheet"/>
<script src="http://cdn.alloyui.com/2.0.0/aui/aui-min.js"></script>
<span class="calendarInputBox" id="generated-0">
<span class="calendarInputIcon">icon</span>
<input id="generated-1" name="generated-2:form:from" type="text" value="" maxlength="10" class="calendar calendarFrom" />
</span>
Traté de usar
el ícono como contenedor y lee y escribe la fecha manualmente y la ventana emergente ya no aparecee.preventDefault()
ye.stopPropagation()
parafocus
yclick
eventos en la entrada, pero no suprime el calendario que se mostraráNo parece posible conectar el Datepicker con la entrada, pero separa la visualización / ocultación del uso de la entrada. ¿Algunas ideas?
Todo esto está dentro de un portlet JSF 2.1 en Liferay 6.2, si es importante, la entrada se construye de la siguiente manera:
<span class="calendarInputBox">
<div class="calendarInputIcon"></div>
<h:inputText id="from" value="#{searchData.from}" maxlength="10" styleClass="calendar calendarFrom">
<f:convertDateTime pattern="dd.MM.yyyy" />
</h:inputText>
</span>