jQuery invoke timepicker em img clique
-
22-07-2019 - |
Pergunta
Por enquanto componente jQuery timepicker é invocado sagacidade clique na entrada.
Esta é timepicker config:
<script>
...
oScript.text += "var timeId = '#' + '<portlet:namespace/>' + '_time';";
oScript.text += "$j(timeId).timePicker({startTime:new Date(0, 0, 0, 0, 0, 0), step: 30});";
...
</script>
Esta é parte jsp para timepicker (entrada com identificação específica):
<input id="<portlet:namespace/>_time" name="time" size="6" autocomplete="off" value="${eventTime}"
<img id="time-img" class="ui-timepicker" src="${eventTimeImage}" alt="..." title="..."/>
Portanto, este obras OK.
Se a alça de cliques em img, que js erro triste, que id "não está definido", mas id é o mesmo que proferida em resultando HTML
Este código é modificado para IMG tag, a fim de timepicker invocação:
<img id="time-img" onClick="jQuery(<portlet:namespace/>_time).timePicker({startTime:new Date(0, 0, 0, 0, 0, 0), step: 30});" src="${eventTimeImage}"/>
id Tentou com cotação, o mesmo resultado.
É possível que TimePicker em tudo? i significa invocá-lo com onClick. Ou ele é carregado uma vez?
Solução
Gostaria de responder como ninguém até feito.
Assim, a solução parecia ser muito mais simples, que jeito TimePicker invocação em onClick.
Yo necessidade apenas de entrada foco com clique na imagem:
<img id="time-img" onClick="jQuery('#<portlet:namespace/>_time').focus()"/>
Graças ao autor do plugin: TimePicker
Portanto, esta solução pode ser utilizada em outros casos semelhantes, com datepickers etc.
Outras dicas
Outra possibilidade (talvez mais simples) é usar a imagem como imagem de fundo para o campo. Então, quando o usuário clica na imagem, eles realmente estão clicando a entrada, de modo que o selecionador aparece como desejado. Esta solução não requer código JS. Por exemplo:
<input type="text" id="demo" />
<style type="text/css">
#demo
{
background-image:url("image.png");
background-position:right center;
background-repeat:no-repeat;
}
</style>