2010-01-20 4 views
4

J'ai un élément select avec quelques dates mais je veux aussi donner la possibilité de choisir une date à partir du datepicker donc j'ai le code suivant qui affiche une icône de calendrier à côté de le champ de sélection.jQuery ui.datepicker sur l'élément 'select'

<select name="birthday" > 
    <option value="${merge0.birthday}">${merge0.birthday}</option> 
    <option value="${merge1.birthday}">${merge1.birthday}</option>       
</select> 
<input type="hidden" id="bday_icon" /> 

Alors, voici mon script datepicker

$("#bday_icon").datepicker(
      { 
       changeMonth: true, 
       changeYear: true, 
       showOn: 'button', 
       buttonImage: 'cal/images/calendar.gif', 
       buttonImageOnly: true, 
       onSelect: function(dateText, inst) { 
        var field = document.getElementsByNameByName("birthday"); 
        var opt = document.createElement('option'); 
        opt.text = dateText; 
        opt.value = dateText; 
        field.add(opt, null); 
      } 
      }); 

Si pas la fonction onSelect, ajouter une nouvelle option pour le select élément html? ne peux-tu pas voir ce qui ne va pas?

Merci.

Mise à jour 1:

onSelect: function(dateText, inst) { 
     var opt = $('<option />').attr('value', dateText).text(dateText); 
     $('select[name=birthday]').append(opt); 
     } 

fonctionne parfaitement, seule remarque que je devais marquer comme choisi la nouvelle option si il suffit d'éditer comme: $('<option selected/>')

Répondre

3

À moins qu'ils sont certains de vos fonctions, je Je ne suis pas vraiment sûr de ce que sont .add() et getElementsByNameByName(). Je n'arrive pas à trouver add dans l'API jQuery.

Aussi, lorsque vous travaillez avec des widgets jQuery, je préfère utiliser des sélecteurs jQuery:

onSelect: function(dateText, inst) { 
    var opt = $('<option />').attr('value', dateText).text(dateText); 
    $('select[name=birthday]').append(opt); 
} 

Works pour moi.

+0

Merci beaucoup fonctionne parfaitement comme j'avais besoin. – framara