有点不明白楼主为什么要这类处理,Say say你的需求;

解决方案 »

  1.   

    因为整个注册页面很多东西,而有些东西不必填,为了美观不至于页面很长,就把不必填的那部分收起来,要填了,就点开,点开就验证一些必填项,像www.chinacars.com网站的注册一样
      

  2.   

    即使obj.style.display=="none";也并不是不存在,只是没显示罢了。
    如果是动态添加删除元素的话,可以用try..catch..语句来处理。
      

  3.   

    那你直接去检测必填项,而非去处理各元素的display;
    另一方面,如果用户他填了又取消(隐藏)了的话,那你又得加一判断;
    还是要的时候再去追加,可以参照下面的
    <script language="javascript" type="text/javascript">

    function append(obj)
    {
    var id = obj.id;
    var cnode = document.createElement("input");
    cnode.setAttribute("type", "text");
    cnode.setAttribute("id", 'a'+id);
    cnode.setAttribute("name", 'n'+id);
    cnode.setAttribute("size", "20");
    var cancel = document.createElement("input");
    cancel.setAttribute("type", "button");
    cancel.setAttribute("value", "取 消");
    cancel.style.cursor = 'hand';
    cancel.onclick = function () { 
    var tnode = document.getElementById('a'+id).removeNode(true);
    this.removeNode(true);
    return true;
    }
    obj.appendChild(cnode);
    obj.appendChild(cancel);
    }</script>
    </HEAD><BODY>
    <form>
    1<INPUT TYPE="text" NAME="" size="20">*<br />
    <div id="username" onclick="append(this);return true;" style="cursor:hand;">use name click<br /></div>
    2<INPUT TYPE="text" NAME="" size="20">*<br />
    <div id="userphone" onclick="append(this);return true;" style="cursor:hand;">use telephone click<br /></div>
    3<INPUT TYPE="text" NAME="" size="20">*<br />
    <div id="userfax" onclick="append(this);return true;" style="cursor:hand;">use fax click<br /></div>
    <form>
    </BODY>
    </HTML>