Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. VIS-2 JS Error in Widget ovarius. Keine Optionen an select

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    VIS-2 JS Error in Widget ovarius. Keine Optionen an select

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      trojanhector last edited by

      Hallo,
      ich habe eine View erstellt, in der ein Widget (Vis-2 widget ovarious v0.1.9) u. a. 35 html select tags enthält. Diese selects sollen alle die gleichen Optionen enthalten. Und hier laufe ich in Javascript auf einen Fehler:
      Uncaught TypeError: select.add is not a function


      Error_select.add.PNG


      Error_View_2.PNG


      Error_View.PNG


      <%
      let selectid="cboRoom";
      let dp_roomsSelection = JSON.parse(dp["0_userdata.0.heatingControl.rooms"]);
      let dp_roomSelected = "0_userdata.0.heatingControl.Vis.SelectedRoom";
      let db_timeOptions = dp["0_userdata.0.heatingControl.Vis.OverrideHeatingTemperatur"];
      %>

      <script>
      (()=>{

      let selectid="<%- selectid %>";
      let dp_roomSelected="<%- dp_roomSelected %>";
      
      window.writeDP<%- selectid %>=(el)=>{
          //debugger;
          if (el.selectedOptions[0].value) vis.setValue(dp_roomSelected,el.selectedOptions[0].value);
      }
      })();
      

      </script>

      <select class="cbo cbo-10rem" id="<%- selectid %>" name="<%- selectid %>" size="1" onchange="javascript:writeDP<%- selectid %>(this)" >
      <%
      //debugger;
      for(let i = 0; i < dp_roomsSelection.length; i++){
      var el = dp_roomsSelection[i];

      %>

      <option value ="<%- el %>" <%- ((dp[dp_roomSelected] == el) ? "selected":"") %>><%- el %></option>
      <% } %>

      </select>

      <%- dp["0_userdata.0.heatingControl.Vis.Profil"]; %>

      <script>

      db_timeOptions = <%- db_timeOptions %>;
      
      let options = db_timeOptions.map(function(val, ind){
         
      return $("<option></option>").val(val.id).html(val.name);
      });
      
      
      //$('#0_userdata__0__heatingControl__Profile__1__Bad__1_Montag__1__Temperatur').append(options);
      console.log(options);
      
      var selects = document.getElementsByClassName('hc-vis-pr-temp');
      debugger;    
      for( var i = 0; i < selects.length; i++ ) {
          db_timeOptions.forEach((element) => {
              let option = new Option(element.name, element.id)
              let select = selects[i];
              select.add(option, undefined);         
          });
      }
      

      </script>

      Hat jemand eine Idee, was ich falsch mache, oder wie es anders geht?

      Node.js:v20.18.1
      NPM:10.8.2
      Javascript 8.8.3
      js-controller:7.0.6

      vis2 2.9.64
      Vis-2 widget ovarious
      JSON Widget 0.1.9

      mcm1957 OliverIO 2 Replies Last reply Reply Quote 0
      • mcm1957
        mcm1957 @trojanhector last edited by mcm1957

        --- deleted ---

        Der Beitrag war inhaltlich falsch.
        SORRY

        OliverIO 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO @mcm1957 last edited by

          @mcm1957

          das ist leider nur teilweise korrekt.
          für ovarious stimmt das,
          aber nicht für vis2-widgets-ovarious

          1 Reply Last reply Reply Quote 1
          • OliverIO
            OliverIO @trojanhector last edited by OliverIO

            @trojanhector

            wie entstehen den die elemente mit der css-klasse hc-vis-pr-temp ?
            existieren die zum zeitpunkt, wenn das javascript von JSONTemplate läuft dann schon?

            Aufgrund der Fehlermeldung würde ich vermuten, das das was da selektiert wurde kein Objekt vom Typ https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/add ist

            T 1 Reply Last reply Reply Quote 0
            • T
              trojanhector @OliverIO last edited by

              @oliverio
              Die lasse ich mir im Blockly zusammenbauen. Je nach ausgewähltem Raum vom einzelnen Select in der View ändern sich die IDs.

              OliverIO 1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO @trojanhector last edited by OliverIO

                @trojanhector hab gerade mein post erweitert
                gut wäre es das komplette konstrukt in einem erstellen zu lassen.
                für sowas ist die template engine des widgets prädestiniert

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate
                FAQ Cloud / IOT
                HowTo: Node.js-Update
                HowTo: Backup/Restore
                Downloads
                BLOG

                972
                Online

                31.9k
                Users

                80.3k
                Topics

                1.3m
                Posts

                3
                6
                176
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo