Rafraîchissant sélectionnez après avoir sélectionné l'option est modifiée par jQuery
Je suis à jour de l'option sélectionnée par programme à l'aide de jQuery, mais rien ne change dans le navigateur. (Qui est, les vieilles option sélectionnée reste sélectionné au lieu de passer à la nouvelle option sélectionnée.) Des Suggestions?
Grâce. - Jeff
J'ai un formulaire simple comme ceci:
<form id="form1" name="form1" method="" action="">
<p>Assign:
<select name="assigner" id="assigner">
<option value="Sam" selected="selected">Sam</option>
<option value="Harry">Harry</option>
<option value="Fred">Fred</option>
</select>
<input type="button" name="button1" id="button1" value="Submit" />
</p>
<p> Task A: <select name="assignment[]" id="assigner">
<option value="Sam">Sam</option>
<option value="Harry" selected="selected">Harry</option>
<option value="Fred">Fred</option>
</select>
</p>
<p>
Task B: <select name="assignment[]" id="assigner">
<option value="Sam">Sam</option>
<option value="Harry" selected="selected">Harry</option>
<option value="Fred">Fred</option>
</select>
</p>
</form></div>
et mon jQuery code ressemble à ceci:
<script type="text/javascript">
jQuery(document).ready(function(){
$('[name="button1"]').click(
function(){
var form = $(this).parents('form');
var assigned = form.find(':selected').first().val();
form.find(':selected').each(function(index){
$(this).val( assigned ).change();
});
}
);
});
</script>
- Id doit être unique.
- Vous avez raison. Merci.
Vous devez vous connecter pour publier un commentaire.
Pas pour autant que je peux voir. Vous êtes à la re-définition de la valeur de la sélection
option
, mais ne pas faire quelque chose d'aussi loin que je peux dire à la réelleselect
boîte.Pour changer un
select
boîte, vous devez l'identifier, puis d'appelerval
sur il, pas un de sesoption
éléments.Je ne peux pas faire ce que vous voulez que votre
input[name="button1"]
à faire, mais voici un exemple de la mise à jour d'unselect
boîte: Vivre copie | sourceHTML:
JavaScript:
Séparément, comme j08691 souligné dans les commentaires, vous ne pouvez pas affecter de la même
id
valeur ("assigner"
) à plus d'un élément.id
valeurs doit être unique dans le document. Votre code ne vous montre pas l'aide queid
, donc c'est peut-être non, mais il vaut la peine de repérage de la place.$(this).closest('form').find('select')
serait-il le faire, à partir de l'intérieur d'un gestionnaire d'événement sur le bouton.$(this)
enveloppe le bouton dans un objet jQuery.closest('form')
retourne un objet jQuery le plus proche deform
élément dans la hiérarchie. Puisfind('select')
trouve tousselect
éléments au sein de ce formulaire.