J'aime savoir comment obtenir la valeur de l'élément (en utilisant l'événement click) déclenché dans l'événement focus-blur. Je crée un sélecteur d'icônes qui comme jQuery datepicker. Voici le code, mais quand je clique sur l'icône, l'élément sélecteur de date masquer sans donner la valeur.comment obtenir la valeur de l'élément à partir de l'événement focus-flou dans javascript
code PHP
<input id="contentIcon" class="form-control" type="text" name="content_icon" placeholder="pilih icon"/>
<div id="iconPicker" class="iconpicker dropdown-menu">
<div class="iconpicker-wrapper">
<table class="dt-icons">
<?php
foreach (array_chunk($icons, 5, true) as $icon_cunk) {
echo '<tr>';
foreach($icon_cunk as $key => $ico) {
echo '<td data-value="'. $key .'"><i class="' . $key .'"></i></td>';
}
echo '</tr>';
}
?>
</table>
</div>
</div>
Javascript
$("#contentIcon").keypress(function (e) {
e.preventDefault();
});
$(document).on('click', '#iconPicker table.dt-icons td', function() {
$('#contentIcon').empty();
var _dtself = $(this);
document.getElementById("contentIcon").value = _dtself.data('value');
});
$('#contentIcon').focus(function() {
$('#iconPicker').show();
}).blur(function() {
$('#iconPicker').hide();
});
Mise à jour
#iconPicker
est cachée (display: none) élément, utilisé pour choisir l'icône. Il s'affichera lorsque l'utilisateur se concentrera sur le champ de saisie #contentIcon
et sera masqué lorsque l'événement de flou sera déclenché. Si je supprime $('#iconPicker').hide();
dans blur
même une partie de gestionnaire, alors (formater ce code, grâce à @Reddy)
$(document).on('click', '#iconPicker table.dt-icons td', function() {
$("#contentIcon").val($(this).data('value'));
});
peut être déclenchée et la valeur accordée au champ d'entrée #contentIcon
. Mais, #iconPicker
pas caché en arrière. Si j'ai utilisé $('#iconPicker').hide();
dans le gestionnaire d'événements click
, le #iconPicker
ne se cache pas si l'utilisateur ne choisit pas l'icône.
mise à jour
ici l'exemple jsfiddle.net
Je devais mettre à jour mon code et donner quelques explications. –