/*************** 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()" />
需要一些帮助...
我通过点击Button1使用dom创建一个文本字段,然后通过单击button2使用innerhtml与textfield结合。
问题是在将dom createelement与innerhtml结合后,dom创建的文本字段无法调用javascript函数...
任何人都有解决方案......
感谢...
答案 0 :(得分:1)
我没有看到代码是如何工作的(可能不是最佳实践,但它确实有效)。
在Firefox 3.5中测试并使用。请参阅http://ashita.org/StackOverflow/innerhtml.html
上的测试页答案 1 :(得分:1)
你的问题在于
inp.onkeyup = function() {here(this.value)}
如果之前不存在,则无法像这样定义onkeyup。另外,这个参数必须是一个字符串(基本上是要执行的Javascript代码)
inp.setAttribute('onkeyup','here(this.value)');