Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. VIS-2 JS Error in Widget ovarius. Keine Optionen an select

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    374

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

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

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
6 Beiträge 3 Kommentatoren 368 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T Offline
    T Offline
    trojanhector
    schrieb am zuletzt editiert von
    #1

    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

    mcm1957M OliverIOO 2 Antworten Letzte Antwort
    0
    • T trojanhector

      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

      mcm1957M Online
      mcm1957M Online
      mcm1957
      schrieb am zuletzt editiert von mcm1957
      #2

      --- deleted ---

      Der Beitrag war inhaltlich falsch.
      SORRY

      Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
      Support Repositoryverwaltung.

      Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

      LESEN - gute Forenbeitrage

      OliverIOO 1 Antwort Letzte Antwort
      0
      • mcm1957M mcm1957

        --- deleted ---

        Der Beitrag war inhaltlich falsch.
        SORRY

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von
        #3

        @mcm1957

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

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        1 Antwort Letzte Antwort
        1
        • T trojanhector

          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

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von OliverIO
          #4

          @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

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          T 1 Antwort Letzte Antwort
          0
          • OliverIOO 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 Offline
            T Offline
            trojanhector
            schrieb am zuletzt editiert von
            #5

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

            OliverIOO 1 Antwort Letzte Antwort
            0
            • T trojanhector

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

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von OliverIO
              #6

              @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

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              1 Antwort Letzte Antwort
              0
              Antworten
              • In einem neuen Thema antworten
              Anmelden zum Antworten
              • Älteste zuerst
              • Neuste zuerst
              • Meiste Stimmen


              Support us

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

              641

              Online

              32.7k

              Benutzer

              82.5k

              Themen

              1.3m

              Beiträge
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
              ioBroker Community 2014-2025
              logo
              • Anmelden

              • Du hast noch kein Konto? Registrieren

              • Anmelden oder registrieren, um zu suchen
              • Erster Beitrag
                Letzter Beitrag
              0
              • Home
              • Aktuell
              • Tags
              • Ungelesen 0
              • Kategorien
              • Unreplied
              • Beliebt
              • GitHub
              • Docu
              • Hilfe