Partage
  • Partager sur Facebook
  • Partager sur Twitter

framework knockout, jquery

script erreur

    8 décembre 2017 à 11:55:32

    Bonjour,

    J'ai ce code qui ne 'compile' pas, je vois pas mon erreur, 

    $("#dropdownlist_type").on("change", function()
    {
    	var item = ko.utils.arrayFirst(datasources.Librairie, function(item) {
    		return item.Value == $("#dropdownlist_type").val();
    	});
    	if($(item.Value == "crayon")
    		{
    			$("#text_box_1").disableRequired();
    			$("#text_box_1").disableRequired();
    			$("#text_box_1").disableRequired();
    		}
    		else
    		{
    			$("#text_box_1").enableRequired();
    			$("#text_box_1").enableRequired();
    			$("#text_box_1").enableRequired();
    		}
    },100)

    Une petite aide?

    Merci beaucoup

    • Partager sur Facebook
    • Partager sur Twitter
      8 décembre 2017 à 12:17:10

      Bonjour,

      Tout d'abord le JavaScript ne se compile pas vu que c'est un langage exécuté :)

      Ensuite je pense que l'erreur vient de ton "if", pourquoi y-a-t'il un "$" à cet endroit ?
      Je pense que 

      if(item.Value == "crayon")


      suffit.

      De plus petit conseil ne met pas de "V" majuscule dans tes variables comme première lettre, la première lettre en majuscule est souvent réservée aux classes (une question de norme pas une règle générale).

      Cordialement,

      -
      Edité par SaShimy 8 décembre 2017 à 12:17:41

      • Partager sur Facebook
      • Partager sur Twitter
        8 décembre 2017 à 14:33:43

        Bonjour,

        Merci , je vais tester cela, par contre pour le V de Value c'est une majuscule car ça représente le nom de ma colonne de table

        re,ça marche pas, ça me dit " can not read property 'Value' of null"

        -
        Edité par ellyse 8 décembre 2017 à 15:00:50

        • Partager sur Facebook
        • Partager sur Twitter
          8 décembre 2017 à 15:32:14

          Cela signifie que item est null, qu'il est vide.

          Vérifies bien ta requête vers ta librairie. Elle ne retourne rien.

          • Partager sur Facebook
          • Partager sur Twitter
            8 décembre 2017 à 15:42:11

            alors, j'ai modifiée mon code afin que ce soit plus clair ligne 3 var result,

            en faite quand je debugg avec un point d’arrêt,ça ne rentre même pas dans mon script, ça passe de la 1ere ligne à la derniere,

            De plus, ma Table Librairie contient bien une colonne nommée Value, remplie et en mode debugg ça détecte bien ma table avec ses données

            $("#dropdownlist_type").on("change", function()
            {
                var result= ko.utils.arrayFirst(datasources.Librairie, function(item) {
                    return item.Value == $("#dropdownlist_type").val();
                });
                if(item.Value == "crayon")
                    {
                        $("#text_box_1").disableRequired();
                        $("#text_box_1").disableRequired();
                        $("#text_box_1").disableRequired();
                    }
                    else
                    {
                        $("#text_box_1").enableRequired();
                        $("#text_box_1").enableRequired();
                        $("#text_box_1").enableRequired();
                    }
            },100)

            -
            Edité par ellyse 8 décembre 2017 à 15:42:24

            • Partager sur Facebook
            • Partager sur Twitter
              8 décembre 2017 à 15:48:37

              Je viens de voir que dans ton code, tu ne déclares jamais item (enfin si, mais localement, dans la fonction fille).

              Je ne vois pas ce que tu veux faire, mais essayes de mettre ta condition dans ta fonction, juste avant ton return.

              • Partager sur Facebook
              • Partager sur Twitter
                8 décembre 2017 à 15:57:54

                comment je déclare item en globale, comme ça : item = ""? Du coup il sera vide donc pas bon.

                Ce que mon script doit faire: 

                Au clique  de dropdownlist_type (qui comprend tous les champs de la colonne Value de ma table Librairie), rendre text_box_1 obligatoire, sauf si le champs de la colonne Value est = à "crayon", à ce moment là le rendre non obligatoire, tu vois?

                -
                Edité par ellyse 8 décembre 2017 à 15:58:15

                • Partager sur Facebook
                • Partager sur Twitter
                  8 décembre 2017 à 16:05:30

                  Pour avoir la valeur d'un champ sélectionné, rien de plus compliqué.

                  $('#liste').on("change", function(e){
                     var liste = document.getElementById("liste");
                     var elementSelectionne = liste.options[liste.selectedIndex].value;
                  
                     if(elementSelectionne = "toto") {
                        Hello World
                     }
                  });



                  -
                  Edité par FindL 8 décembre 2017 à 16:05:49

                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 décembre 2017 à 16:15:15

                    merci mais non je peux pas faire comme ça, je dois le faire avec ma façon à moi

                    De plus je veux pas avoir la valeur d'un champs sélectionné, mais plutôt ça: En fonction de la valeur que je sélectionne donc je clique dans ma div id, ben je rends une autre div obligatoire ou non

                    • Partager sur Facebook
                    • Partager sur Twitter

                    framework knockout, jquery

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown