如何清空Form内输入框、下拉框的内容或还原为默认值?

hcl8182 2005-02-03 03:42:43
我写了一下代码,可是说脚本错误,好像没有什么错误啊?
<script language="javascript">
function resetvalue()
{
if (document.all("Keywords") != null) document.all("Keywords").value="";
if (document.all("FromDate") != null) document.all("FromData").value="";
if (document.all("EndDate") != null) document.all("EndDate").value="";
if (document.all("dlCategory") != null) document.all("dlCategory").item( 0 ).selected = true;
if (document.all("dlApproval") != null) document.all("dlApproval").item( 0 ).selected = true;
if (document.all("dlDocStatus") != null) document.all("dlDocStatus").item( 0 ).selected = true;
if (document.all("xdlAddByxx") != null) document.all("dlAddBy").item( 0 ).selected = true;
if (document.all("dlEditor") != null) document.all("dlEditor").item( 0 ).selected = true;
if (document.all("dlNewsTarget") != null) document.all("dlNewsTarget").item( 0 ).selected = true;
}
</script>
...全文
1160 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
JK_10000 2005-02-04
  • 打赏
  • 举报
回复
"JK_10000(JK) 的函数是一棒子全打死"

----
冤枉啊!
没有一棒子打死呢
还给它留了个出气的地方:第二个参数exceptObjName就是让使用者设置不处理的对象,
如果发生了“万一它页面初始时比如多选框是选中的”
那就这样调用:clearForm(document.formObj,"ASelect");
mikespook 2005-02-04
  • 打赏
  • 举报
回复
如果非要在客户端做,那你手工对每个框进行更新就可以~~

document.getElementById("name").value = "";
document.getElementById("select").options[0].selected = true;

当然写个程序遍历表单中所有的INPUT和SELECT都这样设置,比一个一个手工做简单~~~呵呵,多写两行代码的事情~~~
meizz 2005-02-04
  • 打赏
  • 举报
回复
JK_10000(JK) 的函数是一棒子全打死, 万一它页面初始时比如多选框是选中的等, 全被你做掉了
JK_10000 2005-02-04
  • 打赏
  • 举报
回复
/**
* This function is to clear a form (or a container of implements such as table,tr ..).
* JK
* formObj:the checked form
* exceptObjName:the name of whitch need not be checked;
* For example:clearForm(document.frm,"ACheckbox,BRadio,CSelect");
*/
function clearForm(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;
selectObjs[i].value="";
}

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="";
else if((inputObjs[i].type.toUpperCase()=="RADIO")||(inputObjs[i].type.toUpperCase()=="CHECKBOX"))
inputObjs[i].checked=false;

}

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="";
}
}
hcl8182 2005-02-04
  • 打赏
  • 举报
回复
可是使用window.location.href = "aa.aspx"; 之后依然会使用到服务器资源哦,这种事情其实在客户端就可以完成了吧……
ice_berg16 2005-02-04
  • 打赏
  • 举报
回复
呵呵,还有活口 :)
meizz 2005-02-03
  • 打赏
  • 举报
回复
在ASP.NET里用 reset() reload() 都是起不到效果的, 因为页面postBack之后, 所有的表单项默认值都已经变了, 解决的办法就是: window.location.href = "aa.aspx"; //这样就可以加载到最初始的状态了.
citybird888 2005-02-03
  • 打赏
  • 举报
回复
提示是么错误呀?
ice_berg16 2005-02-03
  • 打赏
  • 举报
回复
reset就是恢复默认值
hcl8182 2005-02-03
  • 打赏
  • 举报
回复
两种方法都有不好的地方,这个东东是用一个ASP.net页面上面的,用清空搜索条件,把条件都重置到页面刚好LOAD出来的时候的状态

document.formName.reset()
这个方法只能够在第一次的时候起作用,当搜索之后这个Reset键就失效了

window.location.reload();
这个会造成整个页面Reload,并不需要这么做吧,会加重服务器负担,这个功能在客户端完成就行了。
whitecellarco 2005-02-03
  • 打赏
  • 举报
回复
window.location.reload();
meizz 2005-02-03
  • 打赏
  • 举报
回复
document.formName.reset()

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧