2009-07-01 9 views
1
/*************** javascript *****************/ 

function here(getValue) { 

    alert(getValue) 
} 

function aaa() { 

    document.getElementById('asd').innerHTML = '<input type="text" name="textfield" onkeyup="here(this.value)" />' 
} 

function aaa2() { 

    var temp = document.getElementById('asd').innerHTML 
    document.getElementById('asd').innerHTML = temp+'<input type="text" name="textfield" onkeyup="here(this.value)" />' 
} 

function dom() { 

    var zzz = document.getElementById('asd') 

    var inp = document.createElement('input') 
    inp.type = 'text' 
    inp.name = 'textfield' 
    inp.onkeyup = function() {here(this.value)} 

    zzz.appendChild(inp) 
} 

/************************************/ 

<div id="asd"> 
    <input type="text" name="textfield" onkeyup="here(this.value)" /> 
</div> 

<input type="button" name="Button1" value="Button1" onclick="aaa2()" /> 
<input type="button" name="Button2" value="Button2" onclick="dom()" /> 

besoin d'aide ...dom createElement et innerHTML

créer un champ de texte à l'aide par dom cliquez sur Button1, puis combiner avec textfield en utilisant innerHTML en cliquant Bouton2.

le problème est de combiner après la createElement dom avec innerHTML, le champ de texte créé par dom ne peut pas appeler la fonction javascript ...

quelqu'un a une solution ...

... merci

+0

Je vous suggère fortement de modifier votre question - j'ai essayé, mais je ne peux pas donner un sens pour le modifier – annakata

Répondre

1

Je ne vois rien de mal avec le code quant à la façon dont cela fonctionne (peut-être pas les meilleures pratiques, mais cela fonctionne).

Testé et fonctionnant dans firefox 3.5. Voir la page de test à http://ashita.org/StackOverflow/innerhtml.html

1

Votre problème est avec cette

inp.onkeyup = function() {here(this.value)} 

Vous ne pouvez pas définir onkeyup comme celui-ci si elle n'existait auparavant. De plus, cet argument doit être une chaîne (essentiellement, le code Javascript à exécuter)

inp.setAttribute('onkeyup','here(this.value)');