reset是针对某个form的,没有form就不能用reset
不过用script可以搞定
<div id="d">这个包围的都reset
<input id=aaa ....
<input id=bbb ....</div>
//div d外面的不reset或清空
<input...
<input type=buttom onclick="doreset();"
<script language=javascript>
var v1=aaa.value;
var v2=aaa.value;
function doreset()
{
 aaa.value=v1;
 aaa.value=v2;
}
</script>

解决方案 »

  1.   

    但是我有很多这种div。
    这种能解决,我想要一个通用的。
    或者能否遍历某个div包围下的所有的控件。
      

  2.   

    只是对客户端的控件进行操作
    看看是否有别的方法,能不用ajax就不用。
    个人觉的没必要。
      

  3.   

    参考:
    <html>
    <head>
    </head>
    <body>
    <div>
    <form><input type="text"></form>
    </div><form><input type="text"></form><div>
    <form><input type="text" value="test"></form>
    </div><input type="button" value="reset" onclick="resetDivForm();">
    <script language="javascript">
    function resetDivForm(){
    var formObj = document.getElementsByTagName("FORM");
    var lfo = formObj.length; for(var i=0;i<lfo;i++){
    if(formObj[i].parentNode.tagName=="DIV"){
    formObj[i].reset();
    }
    }
    }
    </script>
    </body>
    </html>
      

  4.   

    参考,FF下可以,思路是将div的内容前后加form,将其独立出来<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="author" content="" />
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <title>无标题文档</title>
    <style type="text/css">
    div{border:1px solid #ccc;}
    </style>
    <script type="text/javascript">
    var $ = function(id) {return document.getElementById(id);}
    function clr(){
    $("aa").innerHTML = "<\/form><form id='bb'>" + $("aa").innerHTML + "<\/form><form>";
    $("bb").reset();
    $("aa").innerHTML = $("aa").innerHTML.replace(/(<\/form>)|(<form([^>]*)>)/g,"");
    }
    </script>
    </head><body>
    <form>
    <input type="text" value="" name="a1" />
    <input type="text" value="" name="a2" />
    <div id="aa">
    <input type="text" value="" name="a3" />
    <input type="text" value="" name="a4" />
    </div><input type="button" value="清除下面两个" onclick="clr()" /> 
    <input type="button" value="全部清除" onclick="document.forms[0].reset()" />
    </body>
    </html>
      

  5.   

    早上又想到这些元素都有defaultValue的属性,
    [div].getElementsByTagName("input")inputs[i].value = inputs[i].defaultValue试试
      

  6.   

    /**
    * This function is to reset if a form (or a container of implements).
    * JK 2004-01-05
    * formObj:the checked form
    * exceptObjName:the name of whitch need not be checked;
    * For example:resetForm(document.frm,"ACheckbox,BRadio,CSelect");
    */
    function resetForm(formObj,exceptObjName)
    {
    if(formObj==null) formObj=document.forms[0];
    if(exceptObjName==null) exceptObjName=="";
    var selectObjs=formObj.getElementsByTagName("SELECT");//For Select Obj
    for(var i=0;i<selectObjs.length;i++)
    {
    if((selectObjs[i].name=="")||(eval("/(^|,)"+selectObjs[i].name+"(,|$)/g").test(exceptObjName))) continue;
    var tempSelectedIndex=0;
    for(var j=1;j<selectObjs[i].length;j++)
    {
    if(selectObjs[i].options[j].defaultSelected)
    {
    tempSelectedIndex=j;
    break;
    }
    }
    selectObjs[i].selectedIndex=tempSelectedIndex;
    } var inputObjs=formObj.getElementsByTagName("INPUT");//For Input Obj
    for(var i=0;i<inputObjs.length;i++)
    {
    if((inputObjs[i].name=="")||(eval("/(^|,)"+inputObjs[i].name+"(,|$)/g").test(exceptObjName))) continue;
    if(inputObjs[i].type.toUpperCase()=="TEXT")  inputObjs[i].value=inputObjs[i].defaultValue;
    else if((inputObjs[i].type.toUpperCase()=="RADIO")||(inputObjs[i].type.toUpperCase()=="CHECKBOX"))
    inputObjs[i].checked=inputObjs[i].defaultChecked;

    }

    var textareaObjs=formObj.getElementsByTagName("TEXTAREA");//For Textarea Obj
    for(var i=0;i<textareaObjs.length;i++)
    {
    if((textareaObjs[i].name=="")||(eval("/(^|,)"+textareaObjs[i].name+"(,|$)/g").test(exceptObjName))) continue;
    textareaObjs[i].value=textareaObjs[i].defaultValue;
    }
    }
    -----------------------------------------
    注:multiple-select没有处理
      

  7.   

    其实通过命名就可以实现了。
    你的div是自动生成的还是手写的?
    给一个div下的控件用统一的名字,然后处理这个div的时候就只处理这样名字的控件。
    需要你对JS比较熟悉才好做。