nimble: Verschobenes Feld

Hi

Ich blick nicht mehr durch... aber hoffe einer von euch findet den Fehler...

Eigentlich wollte ich nur ein Verstecktes Feld generieren:

  
this.inputHidden = function(theCell)  
{  
 newInput = document.createElement('<input name="'+theCell.getAttribute('option')+'" readonly>');  
 newInput.type = 'text';  
 newInput.value = theCell.innerHTML;  
 return newInput;  
}  

Zu versuchszwecken habe ich danach den Code auf ein readonlyelement abgeändert. Leider Werden die Felder bei der Ausgabe verschoben:

Das Ausgabeskript:

  
newInput = inmk.createCell(answer_cell);  
answer_cell.appendChild(document.createTextNode(fields.getAttribute('option')));  
answer_cell.appendChild(newInput); answer_cell.appendChild(document.createTextNode(newInput.getAttribute('name')));  

ergibt volgende Ausgabe:$

user_id <Eingabefeld> user_id
Auftrag auftragauftrag
Logbuch log_id <Eingabefeld> auftrag

Kann mir nun jemand sagen, warum das Eingabefeld für Auftrag zum Logbuch runterrutscht?

vielen Dank im Voraus

THX

------------------------------
lieber ein Pinguin der läuft
als ein Fenster das hängt
------------------------------

  1. Hi,

    newInput = document.createElement('<input name="'+theCell.getAttribute('option')+'" readonly>');

    aus dem nachfolgenden theCell.innerHTML schließe ich mal mutig, dass es sich bei theCell um eine DOM-Node innerhalb eines HTML-Dokumentes handelt. Kein mir bekanntes HTML-Element verfügt über ein option-Attribut.

    Leider Werden die Felder bei der Ausgabe verschoben:

    Die Ausgabe besteht aus CSS, welche auf eine HTML-Struktur wirkt. JavaScript ist hierzu irrelevant. Nenne den erzeugten HTML- sowie den CSS-Code, bzw. verlinke die Seite, auf der das Problem betrachtet werden kann.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi

      aus dem nachfolgenden theCell.innerHTML schließe ich mal mutig, dass es sich bei theCell um eine DOM-Node innerhalb eines HTML-Dokumentes handelt. Kein mir bekanntes HTML-Element verfügt über ein option-Attribut.

      Das schliesst du genau richtig. Das Feld Option wird vorher von mir gestetzt

      Hier das ganze Script:

        
      // Erstellung Tabelle  
       this.makeInputTable = function(root)  
       {  
        myform = document.createElement('form');  
        myform.action = 'input';  
        myform.target = 'status';  
        myform.method = 'post';  
        myform.setAttribute('id', 'bigform');  
         mytable = document.createElement('table');  
          mytablebody = document.createElement('tbody');  
            for(j = 0; j < root.firstChild.childNodes.length; j++)  
            {  
               mytablebody.appendChild(this.addRow(root.firstChild.childNodes[j], root.lastChild.childNodes[j]));  
            }  
            mytablebody.appendChild(this.submitButton());  
        mytable.appendChild(mytablebody);  
        mytable.className="table";  
        myform.appendChild(mytable);  
        return myform;  
       }  
        
      // Erstellung Zeile (Row)  
      this.addRow = function(titles, fields)  
       {  
        mycurrent_row = document.createElement('tr');  
        
        question_cell = document.createElement('td');  
        question_text = document.createTextNode(titles.text);  
        question_cell.appendChild(question_text);  
        question_cell.className = 'td';  
        mycurrent_row.appendChild(question_cell);  
        
        answer_cell = document.createElement('<td name="'+fields.text+'">');  
        answer_cell.setAttribute('inputtype', fields.getAttribute('inputtype'));  
        answer_cell.setAttribute('option', fields.getAttribute('option'));  
        answer_cell.setAttribute('id', 'newIn'+inId);  
        newInput = inmk.createCell(answer_cell);  
        answer_cell.appendChild(newInput);  
        answer_cell.appendChild(document.createTextNode(" "));  
        mycurrent_row.appendChild(answer_cell);  
        
        return mycurrent_row;  
       }  
        
      // Check welches Feld:  
      this.createCell = function(theCell)  
       {  
        switch (theCell.getAttribute('inputtype'))  
        {  
         case 'option.user':  
         case 'option.station':  
         case 'option.customer':  
          theInput = this.inputOption(theCell);  
          break;  
         case 'password':  
          theInput = this.inputPassword(theCell);  
          break;  
         case 'bigtext':  
          theInput = this.inputBigtext(theCell);  
          break;  
         case 'date':  
          theInput = this.inputDate(theCell);  
          break;  
         case 'chosebox':  
          theInput = this.inputChosebox(theCell);  
          break;  
         case 'hidden':  
          theinput = this.inputHidden(theCell);  
          break;  
         case 'hidden':  
          theInput = this.inputHidden(theCell);  
          break;  
         default:  
          theInput = this.inputText(theCell);  
        }  
        return theInput;  
       }  
        
      // Erstellen des Feldes  
       this.inputHidden = function(theCell)  
       {  
        newInput = document.createElement('<input name="'+theCell.getAttribute('option')+'" readonly>');  
        newInput.type = 'text';  
        newInput.value = theCell.innerHTML;  
        return newInput;  
       }  
      
      

      [...]verlinke die Seite, auf der das Problem betrachtet werden kann.

      Wer das ganze mal live sehen will: geht [url=http://nimble.dyndns.info:8080/nmt@title:Hier] hin und meldet sich als ina/123 an. Das problem Tritt auf bei Pendenzen -> Neuer Eintrag

      THX

      --
      ie:} fl:( br:> va:) ls:& fo:# rl:( n4:? ss:) de:] js:| ch:? sh:) mo:? zu:)
      ------------------------------
      lieber ein Pinguin der läuft
      als ein Fenster das hängt
      ------------------------------
      1. Hi,

        Das schliesst du genau richtig. Das Feld Option wird vorher von mir gestetzt

        wenn Du mit JavaScript Daten an ein Objekt binden möchtest, kannst Du dies einfach in Form einer Objekteigenschaft tun. Es ist nicht nötig, HTML-Mechanismen zu triggern, bei denen Du von hinreichend günstiger Fehlerbehandlung abhängig bist.

        Wer das ganze mal live sehen will: geht http://nimble.dyndns.info:8080/nmt@title:Hier hin und meldet sich als ina/123 an. Das problem Tritt auf bei Pendenzen -> Neuer Eintrag

        Nachdem ich herausgefunden habe, wo interaktive Elemente sind und dass ich diese offenbar mit Doppelklick bedienen muss, bekomme ich eine Eingabemaske, nach der augenscheinlich nichts mehr passiert. Zusätzlich erhalte ich den JavaScript-Fehler, dass ActiveXObjekt nicht existiere. Leider kann ich Dein Problem so nicht untersuchen.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi

          wenn Du mit JavaScript Daten an ein Objekt binden möchtest, kannst Du dies einfach in Form einer Objekteigenschaft tun. Es ist nicht nötig, HTML-Mechanismen zu triggern, bei denen Du von hinreichend günstiger Fehlerbehandlung abhängig bist.

          Naja - es funktioniert so...

          Nachdem ich herausgefunden habe, wo interaktive Elemente sind und dass ich diese offenbar mit Doppelklick bedienen muss, bekomme ich eine Eingabemaske, nach der augenscheinlich nichts mehr passiert. Zusätzlich erhalte ich den JavaScript-Fehler, dass ActiveXObjekt nicht existiere. Leider kann ich Dein Problem so nicht untersuchen.

          Das ganue ist ein ziemlich komplexes Peojekt, da ist klar, dass du nicht auf anhieb die Funktionsweise verstehst. Weiter ist es auf IE ausgelegt, das ist der Grund warum du nichts erhältst.

          PS: ich habe den Bösewicht unterdessen gefunden:

            
             case 'hidden':  
              theinput = this.inputHidden(theCell);  
              break;  
             case 'hidden':  
              theInput = this.inputHidden(theCell);  
              break;  
          
          

          Diese Beiden einträge waren im Switch-Konstrukt enthalten, natürlich ist der obere falsch und musste rausgelöscht werden.

          Was eine rauchpause mit Augenentspannenden fernguck bringt ;-)

          THX

          ------------------------------
          lieber ein Pinguin der läuft
          als ein Fenster das hängt
          ------------------------------

          1. Hi,

            Naja - es funktioniert so...

            das ist absolut bedeutungsfrei. Wichtig sind insbesondere zwei Kriterien:

            1.) Es funktioniert _nicht_ (Ausschlusskriterium).
            2.) Es ist richtig.

            Den ersten Punkt hast Du zwar ausgeschlossen, aber den zweiten nicht erfüllt.

            Das ganue ist ein ziemlich komplexes Peojekt, da ist klar, dass du nicht auf anhieb die Funktionsweise verstehst. Weiter ist es auf IE ausgelegt, das ist der Grund warum du nichts erhältst.

            Ah. Dieses Detail hättest Du eventuell erwähnen sollen ... :-)

            PS: ich habe den Bösewicht unterdessen gefunden:

            [...]

            Was eine rauchpause mit Augenentspannenden fernguck bringt ;-)

            Jo :-)

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
          2. Hi,

            Was eine rauchpause mit Augenentspannenden fernguck bringt ;-)

            Wie lang hast Du das Rauchen denn unterbrochen?
            Offensichtlich lang genug, daß sich die Rauchschwaden verzogen haben und den Blick in die Ferne freigegeben haben ... ;-)

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.