我有一个模型和内部模型我有一个vo。
Class Model{
private VO vo1;
getVO1{
}
setVO1{
}
}
Class VO{
private String name;
getName{
}
setName{
}
}
在JSP中
<form:input path="vo1.name" name="name" id="name">
在JS中,如果我尝试验证表单,则不会抛出错误。
$("form1").validate({
rules : {
"name": required
},
messages : {
"name" : {
required : "name mandatory
}
});
相同的JS代码ll适用于以下代码
Class Model{
private String name;
getName{
}
setName{
}
}
<form:input path="name" name="name" id="name">
需要知道为什么它没有验证模型的VO中的字段。规格是这样的吗?请帮助
答案 0 :(得分:0)
就像我说的那样,您需要查看(并向我们展示)每个案例的 呈现的 HTML,以便清楚地看到出现了什么问题。 JavaScript并不关心如何构建模型或服务器端代码中的任何其他内容。 JavaScript在浏览器中运行,只能看到HTML / DOM的构建方式。
你的第一个案例......
<form:input path="vo1.name" name="name" id="name">
将呈现为......
<input name="vo1.name" id="name" type="text">
根据input
标记的Spring MVC文档,没有名为name
的选项。相反,path
在浏览器中呈现为HTML name
属性。
由于您呈现的HTML name
为vo1.name
,因此您需要在.validate()
方法中使用该声明来声明规则......
$("#form1").validate({ // <- '#' was missing from selector
rules: {
"vo1.name": "required" // <- boolean rule declaration needs quotes
},
messages: {
"vo1.name": {
required: "name mandatory" // <- closing quotation mark was missing
} // <- closing brace was missing
}
});
注意您的JavaScript控制台错误。您错过了自定义消息的结束报价以及结束括号。此外,required
规则的简写必须用引号括起来,否则它会被解释为变量名。最后,您错过了jQuery选择器中#
前面的form1
。所有这些都将破坏jQuery或JavaScript,并且大多数都会出现控制台错误。
DEMO:http://jsfiddle.net/ge2xgt8n/
<强>参考强>: