2010-04-15 5 views
0

J'ai quelques datepickers
J'ai personnalisé ces ils montrent mois seulement et année
Voici le code pour les créerjQuery valident plug-in contre jQueryUI personnalisés datepickers

jQuery("input[name*='fechauso']").each(function() { 
    jQuery(this).datepicker({ 
     changeMonth: true, 
     changeYear: true, 
     showButtonPanel: true, 
     dateFormat: 'MM yy', 
     constrainInput: true, 
     showOn: 'button', 
     buttonText: 'Seleccionar...', 

     onClose: function(dateText, inst) { 
      var month = jQuery("#ui-datepicker-div .ui-datepicker-month :selected").val(); 
      var year = jQuery("#ui-datepicker-div .ui-datepicker-year :selected").val(); 
      jQuery(this).datepicker('setDate', new Date(year, month, 1)); 
     } 
    }); 
}); 

Maintenant, j'ai ajouté une méthode de validation personnalisée (en utilisant le plugin) pour vérifier ceci:

  • Si l'utilisateur n'a pas sélectionné de date à l'aide du bouton, le champ est vide. La méthode de validation personnalisée doit donc être déclenchée. Cela n'arrive pas.

Voici la méthode validate personnalisée

jQuery.validator.addMethod("isEmpty", function(value, element) { 
    return (value == ''); 
}, "Must select a date with the button besides control"); 

jQuery("#ct_2_fechauso").rules("add", { 
    required: "#campotilde_psico:checked", 
    isEmpty: true 
}); 

Le problème est que même si je choisis une date, il me demande toujours de sélectionner une date à nouveau. Datepicker champs doivent être en lecture seule

Répondre

0

essayer d'utiliser cette

$.datepicker.setDefaults({ 
    closeOnSelect: true, 
    onSelect: function() { 
     if (typeof $(this).valid == 'function') { 
      $(this).valid(); 
     } 
    } 
}); 
Questions connexes