我正在使用 Struts 2.1.8,并在 IE 中面临验证问题。我收到以下错误
An exception occurred: Error. Error message: Invalid argument.
我尝试找出原因并发现以下内容。我生成的 JavaScript 代码是:
field = form.elements['district.name'];
var error = "Enter only alphabets for district";
if (continueValidation && field.value != null && !field.value.match("^[a-zA-Z ]*$")) {
addError(field, error);
errors = true;
}
我尝试通过将相同的代码放入函数中并在 onclick 事件中调用它来进行模拟。 addError()
方法抛出异常,原因是 field
变量。如果我将其更改为 field[0]
,它就可以正常工作。如何修复这个错误?
最佳答案
检查生成的 HTML 源。在网络浏览器中打开页面,右键单击并选择查看源代码。输入字段的名称是否真的 district.name
?它不是像许多其他 MVC 框架一样以其他一些自动生成的键(可能是 <form>
的 ID/名称)为前缀/后缀吗?如果是这样,您需要相应地更改 JavaScript 代码,使其使用 HTML DOM 树中显示的正确元素名称。您知道,JavaScript 在客户端计算机上运行,只能看到生成的 HTML DOM 树,而不是负责生成 HTML 的“原始”服务器端代码。
关于java - IE中的struts验证问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2561381/