为什么我发贴老是看不见.要发两次???页面上一按纽.按下执行:<input type="button" onclick="ShowNew();">
function ShowNew()
{
var s = "<input type='text' id='username' onchange='" + checkinput() + "'>";
var div = document.createElement("DIV");
div.innerHTML = s;
div.id = "newid";
document.appendChild(div);
}检测输入的函数checkinput();
function checkinput()
{
var a = document.getElementById("username").value;
}改过的.结果当我按下按纽时出错:document.getElementById(......).为空或不是对象.这如何解决?

解决方案 »

  1.   

    innerHTML 赋值 内部显示的是字符串,不是元素对象,可以改成以下:
    <input type="button" onclick="ShowNew();" value="Test">
    <script type="text/javascript">
    function ShowNew(){
    //var s = "<input type='text' id='username' onchange='" + checkinput() + "'>";
    var div = document.createElement("DIV");
    //div.innerHTML = s;

    var input = document.createElement("input");
    input.type = "text";
    input.id = "username";
    input.onchange = checkinput;

    div.appendChild(input);
    document.body.appendChild(div);
    }
    //检测输入的函数checkinput();
    function checkinput(){
    var a = document.getElementById("username").value;
    alert(a);
    }
    </script>
      

  2.   

    根据你原来的把s赋值改为以下
    var s = "<input type='text' id='username' onchange='checkinput()'>";可以了
      

  3.   

    cvpc(一回) 这下可以了.呵呵.但还有一个问题.如果我要加个参数怎么写?
    var s = "<input type='text' id='username' onchange='checkinput()'>";
    就是往checkinput带个参数.var s = "<input type='text' id='username' onchange='checkinput(username)'>";//错误
    var s = "<input type='text' id='username' onchange='checkinput('username')'>";//也是错误.这个怎么写呢?