我正在尝试在 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)
相同的对象。有什么区别?
表单元素可以通过名称访问字段,为此您应该获取表单元素。您可以通过多种方式完成此操作,使用
document.getElementById()
或 document.forms[]
,或 $("#formid")
。无论你选择哪种方式都没关系。 请注意,一份文档可以包含多种表单,因此您应该引用正确的表单。通过 id 获取表单元素会返回一个具有 id
属性的元素,通过 forms
属性中的索引获取它,您应该知道正确的索引。获得表单元素后,您可以按名称引用输入字段。例如
<form id="formid">
<input name="service">
</form>
<script>
var v = document.getElementById("formid")['service'];
</script>