1 votes

Comment initialiser une boîte de texte pour qu'elle soit cachée lors du premier affichage tout en faisant fonctionner jquery ?

J'ai donc la commande suivante pour masquer ou afficher une zone de texte en fonction de valeurs spécifiques sélectionnées dans une liste déroulante. Cela fonctionne sauf que j'ai besoin que le premier affichage de la popup soit toujours caché. Comme aucun changement d'index n'a été effectué dans la liste déroulante, le code suivant ne fonctionne pas. Si je la code comme visible="false", elle reste toujours cachée. Comment puis-je résoudre ce problème ?

<script language="javascript" type="text/javascript">

     var _CASE_RESERVE_ACTION = "317"; 
     var _LEGAL_RESERVE_ACTION = "318";

     function pageLoad() {

         $(".statusActionDDLCssClass").change(function() {
             var value = $(this).val();
             if (value == _CASE_RESERVE_ACTION || value == _LEGAL_RESERVE_ACTION) {
                 $(".statusActionAmountCssClass").attr("disabled", false);
                 $(".statusActionAmountCssClass").show();
             }
             else {
                 $(".statusActionAmountCssClass").attr("disabled", true);
                 $(".statusActionAmountCssClass").hide();
             }
         });
     }

</script>

Nous vous remercions, Jim à Suwanee, GA

3voto

brendan Points 15097

Si vous définissez

visible=false

.Net ne le rendra pas. Vous pouvez faire

style="display:none;"

et .Net rendront la balise correctement, mais CSS la cachera à l'utilisateur.

0voto

Russ Cam Points 58168

Ajouter ce qui suit à pageLoad fonction

function pageLoad(sender, args) {

$("input.statusActionAmountCssClass").hide();

.... rest of code .....

}

Par ailleurs, je recommande d'utiliser le sélecteur $("input.statusActionAmountCssClass" ) pour obtenir un objet jQuery contenant une référence à votre entrée, sinon jQuery recherchera todos pour qu'ils correspondent à la classe CSS .statusActionAmountCssClass

EDITAR:

Une autre modification qui pourrait également être apportée est l'utilisation de la fonction data() pour stocker les deux variables globales

$.data(window, "_CASE_RESERVE_ACTION","317"); 
$.data(window, "_LEGAL_RESERVE_ACTION","318");

puis, lorsque vous en avez besoin, il vous suffit de mettre en cache la valeur dans une variable locale à l'intérieur de la fonction

function someFunctionThatNeedsGlobalVariableValues() {

    var caseReserveAction = $.data(window, "_CASE_RESERVE_ACTION");
    var legalReserveAction = $.data(window, "_LEGAL_RESERVE_ACTION");
}

De cette manière, l'espace de noms global n'est pas pollué. Voir aussi cette réponse pour en savoir plus sur data() commande

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X