2017-05-10 1 views
0

Ich versuche, HTML-Code-Zeichenfolge für ein Textfeld zu generieren. Das Problem ist, dass ich das onchange-Ereignis nicht im generierten HTML-Textfeld arbeiten lassen kann.Einstellung onClick-Ereignis eines generierten HTML-Textfelds

Script in meinem HTML-Seite ist wie folgt:

function validateSC1(){ 
    //check something 
} 

var myStepContent = new StepContent("sc1", "First Name", inputType.Text, true, validateSC1); 
document.getElementById("loc").innerHTML = myStepContent.generateCode().getCode(); 

Die validateSC1 Funktion soll onchange Ereignis des Textfeldes sein, die erzeugt werden soll.

Jetzt ist die StepContent Funktion wie folgt:

function StepContent(id, label, type, mandatory, validation){ 
    this.init = function(){ 
     this.id = id; 
     this.label = label; 
     this.type = type; 
     this.mandatory = mandatory; 
     this.validation = validation; 
     this.output = ""; 
    } 

    this.generateCode = function(){ 
     if(this.type == inputType.Text){ 
      this.output += this.label + ": <br><input id='" + this.id + "' type='text' onclick='" + this.validation + "'><br>"; 
     } 
     return this; 
    } 

    this.getCode = function(){ 
     return this.output; 
    } 

    this.init(); 
} 

ich in der Lage bin nicht den Onchange auch an der Arbeit. Ich habe es sogar in onclick geändert, um zu sehen, ob es funktioniert. Kann mir jemand bitte Ratschläge geben oder mir sagen was ich falsch mache?

Hinweis: Ich möchte das Ereignis onchange zuweisen, bevor der generierte HTML-Code auf der Seite gerendert wird. Daher kann der addEventListener nicht zum generierten Textfeld verwendet werden.

+0

'onclick = '" + this.validation + " Wenn Sie das tun, nehmen Sie eine Methode und verwandeln sie in eine Zeichenfolge. Es wird NICHT auf die Methodenreferenz verwiesen, die Sie übergeben haben. Außerdem stellen Sie innerText ein, nicht sicher, wie das Rendern von HTML ist. – epascarello

+0

Oh, ich habe diese Codezeile entfernt, da es sich nur um eine Testanweisung handelte, die ich ausprobiert habe. Ich wollte es nicht dorthin bringen. Mein Fehler! – Chums

Antwort

0

Mit jQuery $(document).on Syntax dynamisch geladen html

Veränderungs Verwendung

$(document).on('change', '#element_id', function() { 
    //your code 
}); 

Das gleiche gilt für jede Art von Veranstaltung arbeiten und können zugeordnet werden, bevor der Inhalt existiert noch, da es die prüfen wird DOM für übereinstimmende Elemente jedes Mal, wenn das Ereignis ausgelöst wird.

0

Sie haben keine Parens für Ihr onclick-Ereignis. Sie verwenden auch einzelne und doppelte Anführungszeichen rückwärts von dem, was ich denke, Konvention ist. Ich würde Ihr Objekt in Firebug überprüfen.

Verwandte Themen