【发布时间】:2009-07-14 22:04:07
【问题描述】:
这里发生了奇怪的问题。我正在开发一个使用 Spring 和 Spring form taglib 的 JSR168 portlet。
我在页面上有一个搜索表单,可以根据用户选择的条件浏览报告目录,并且大部分情况下它都可以正常工作。但是,有一系列事件会触发错误。
我发现有一个 JavaScript 函数可以清除用户可以指定的 7 个条件。它清除所有文本框,将所有下拉列表的选定索引设置为 0,并将一组单选按钮默认为我想要默认的单选按钮。所以这一切都很好,而且效果很好。
以下是 2 个场景,1 个演示它按预期工作,1 个显示错误。
- 输入一些东西
- 点击搜索
- 显示结果
- 点击搜索
- 显示结果(与之前相同)
- 输入新内容并单击搜索
- 显示结果(新的、正确的结果)
这是错误
- 输入一些东西
- 点击搜索
- 显示结果
- 单击运行 JavaScript 的“清除表单”
- 表单已清除
- [可选,它不会改变任何东西:输入一些东西]
- 点击搜索
- 结果没有变化
- 再次单击搜索
- 现在显示正确的结果
这是供参考的JavaScript(我不知道这是好还是坏的JS,我过去没有写过)
function clearForm(oForm) {
var elements = oForm.elements;
oForm.reset();
for(i=0; i<elements.length; i++) {
field_type = elements[i].type.toLowerCase();
switch(field_type) {
case "text":
case "password":
case "textarea":
case "hidden":
elements[i].value = "";
break;
case "radio":
case "checkbox":
if (elements[i].checked) {
elements[i].checked = false;
}
break;
case "select-one":
case "select-multi":
elements[i].selectedIndex = 0;
break;
default:
break;
}
}
}
【问题讨论】:
标签: javascript spring jsp forms