J'ai une boîte de sélection avec des options et j'utilise jQuery "Chosen" sur une vue Zend. Ce plugin fonctionne bien.
Javascript:
$('#select_type').chosen();
Mon problème est que je dois sélectionner l'une des options lorsque la page se charge en fonction de la valeur de type_id. J'ai essayé ceci:
document.getElementById('select_type').value = '<?=$this->type_id?>';
Cela change sa valeur mais l'option n'est pas sélectionnée dans la requête JQuery choisie.
Des idées?
EDIT: L'option change avec succès en faisant ce que j'ai mentionné ci-dessus mais elle ne met pas à jour/ne change pas l'élément sélectionné dans le plugin jQuery "choisi". Ma question concerne la mise à jour de la valeur sélectionnée pour jQuery Chosen pas le HTML SELECT (ce que j'ai fait avec succès). Voici un lien vers le plugin jQuery Chosen
Après avoir exécuté:
document.getElementById('select_type').value = '<?=$this->type_id?>';
Vous devez appeler:
$('#select_type').trigger('chosen:updated');
Tiré de la Documentation choisie :
Mise à jour dynamique choisieSi vous avez besoin de mettre à jour les options de votre champ de sélection et que vous souhaitez que Chosen récupère les modifications, vous devrez déclencher l'événement "choisi: mis à jour" sur le champ. Chosen se reconstruira lui-même en fonction du contenu mis à jour.
$("#form_field").trigger("chosen:updated");
Voir le journal des modifications pour l'annonce de ce changement d'API.
Vous devez appeler:
$('#select_type').trigger('liszt:updated');
Tiré de la Documentation choisie :
Mise à jour dynamique choisieSi vous avez besoin de mettre à jour les options de votre champ de sélection et que Chosen sélectionne les modifications, vous devrez déclencher l'événement "liszt: updated" sur le champ. Chosen se reconstruira lui-même en fonction du contenu mis à jour.
- Version jQuery :
$("#form_field").trigger("liszt:updated");
- Version du prototype :
Event.fire($("form_field"), "liszt:updated");
Au lieu de le faire à partir de JS, pourquoi ne pas simplement définir l'option sélectionnée dans le code HTML avant d'appeler le plugin Chosen avec JavaScript? Vous définissez la valeur à partir d'un morceau de PHP donc je ne vois pas pourquoi cela n'a pas pu être fait.
Vous pouvez simplement définir les éléments corrects avec l'attribut sélectionné comme suit:
<select name="teams[]" data-placeholder="Chose an option:"
class="chzn-select" multiple tabindex="6">
<option value=""></option>
<option selected="selected">Dallas Cowboys</option>
<option selected="selected">New York Giants</option>
<option>Philadelphia Eagles</option>
<option>Washington Redskins</option>
</select>
Les élus prendront soin de s'initialiser et d'afficher les deux choix présélectionnés.
Essaye ça:
$("#select_type").val(<?=$this->type_id?>).trigger('change');
$('#select_type').trigger('liszt:updated');
Essaye ça:
$('#select_type').val('<?=$this->type_id;?>'); // Select the value before .chosen();
$('#select_type').chosen();
$('#select_type').val('<?=$this->type_id?>');
essayez-le