为什么 document.forms[0] 和 document.<formname> 在 Struts 2 中具有不同的元素?

问题描述 投票:0回答:1

我正在尝试在 Struts 2 中实现客户端验证。我的主题是

xhtml
。生成的 JavaScript 无法验证我的代码。 经过调试,我发现 Struts 2 使用以下表示法来引用元素:

form = document.getElementById(<form id>);
service = form.elements['service'];

重点是,服务是

undefined
。 当我检查时,
form.elements
null

但是,如果我使用

document.formname
访问表单,我就可以看到元素集合中的字段。

我认为,

document.forms[0]
返回与
document.getElementById(formid)
相同的对象。有什么区别?

java javascript jsp struts2
1个回答
0
投票

表单元素可以通过名称访问字段,为此您应该获取表单元素。您可以通过多种方式完成此操作,使用

document.getElementById()
document.forms[]
,或
$("#formid")
。无论你选择哪种方式都没关系。 请注意,一份文档可以包含多种表单,因此您应该引用正确的表单。通过 id 获取表单元素会返回一个具有
id
属性的元素,通过
forms
属性中的索引获取它,您应该知道正确的索引。获得表单元素后,您可以按名称引用输入字段。例如

<form id="formid">
 <input name="service">
</form>
<script>
 var v = document.getElementById("formid")['service'];
</script>
© www.soinside.com 2019 - 2024. All rights reserved.