2010-09-02 3 views
0
<rich:calendar id="orderpickDate" oninputfocus="check(#{myForm.packingListId})" 

Lors de la création d'un calendrier, vous obtenez un champ de saisie et un img qui affiche le calendrier.Calendrier Richfaces - comment désactiver le popup du calendrier après le chargement de la page

Dans la fonction js je peux désactiver le champ de saisie:

function check(packId) { 
    var canEditThisDate = true; 

    // canEditThisDate = true/false <-- checked using jQuery.ajax() if date can still be 
    // updated by the user 


    if (! canEditThisDate) { 
    jQuery("input[id='shipmentForm:orderpickDateInputDate']").attr("disabled", true); 
    } 
} 

Le champ de saisie ne peut donc pas être modifié manuellement. Mais vous pouvez toujours cliquer sur l'img et sélectionner une date, puis le champ de saisie est mis à jour avec le jour sélectionné. Comment puis-je désactiver la fenêtre contextuelle richfaces dans la fonction js?

Répondre

0

Trouvé une solution simple.

Le champ d'entrée id = shipmentForm: orderpickDateInputDate

L'id img = shipmentForm: orderpickDatePopupButton

I Utilisez code suivant JQuery:

 jQuery("[id*='shipmentForm:orderpickDate']").hover(function() { 
      checkIfOrderPickDateCanBeUpdated(#{shipmentForm.currentPackingList.id}); 
     }); 

Et cacher/montrer l'img:

function checkIfOrderPickDateCanBeUpdated(packId) { 
     var ret = false; 

     jQuery.ajax({ 
       url: '/wms/seam/resource/dbutil?cmd=getFreightDocIdByPackId&amp;packId=' + packId, 
       async: false, 
       success: function(data) { 
        if (data == "0") { 
         ret = true; 
        } else { 
         ret = false; 
        } 
      } 
     }); 

     if (ret) { 
      // enable order pick date field 
      jQuery("input[id='shipmentForm:orderpickDateInputDate']").removeAttr("readonly"); 
      jQuery("img[id='shipmentForm:orderpickDatePopupButton']").show(); 
     } else { 
      jQuery("input[id='shipmentForm:orderpickDateInputDate']").attr("readonly", true); 

      jQuery("img[id='shipmentForm:orderpickDatePopupButton']").hide(); 
     } 

     return ret; 
    } 
Questions connexes