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>
不过用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>
这种能解决,我想要一个通用的。
或者能否遍历某个div包围下的所有的控件。
看看是否有别的方法,能不用ajax就不用。
个人觉的没必要。
<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>
<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>
[div].getElementsByTagName("input")inputs[i].value = inputs[i].defaultValue试试
* 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没有处理
你的div是自动生成的还是手写的?
给一个div下的控件用统一的名字,然后处理这个div的时候就只处理这样名字的控件。
需要你对JS比较熟悉才好做。