由于用户看到的规则应与服务器使用的规则相同,因此我希望将验证规则存储在JSON文件中,并为两种情况加载它们。
但是,jQuery验证插件似乎使用了无效JSON的设置,例如
$('form').validate( {
rules : {
userid : {
required : true,
maxlength : 20
}
}
});
请注意,没有任何键或字符串值是双引号。这使我的服务器端JSON解析器感到悲伤。我能做什么才能保持一套规则?
我的想法是,当请求实际发送到服务器时,我的服务器(在我的情况下是Java servlet)将打开具有rules
变量的json文件并解析它,以便它知道什么逻辑应用于已发布的参数,以及是否接受或拒绝它们。
但是,JSON规范不允许使用不带引号的键和javascript数组之类的值,因此我无法存储规则,因为它们通常仅用于jQuery。
答案 0 :(得分:1)
虽然JavaScript文字并不总是有效的JSON,但JSON始终是有效的JavaScript表达式。你可以使用它:
$('form').validate( {"rules":{"userid":{"required":true,"maxlength":20}}} );
答案 1 :(得分:0)
有效的json是Javascript对象文字语法的子集。基本上,
{
key1: 2,
key2: true
}
与:
相同{
"key1": 2,
"key2": true
}
文字数字,布尔值和null是JSON中的特定值,因此如果您的解析器对它们进行扼流,那么您的解析器就不正确。
您可以在Javascript中使用“JSON”。
JSON实际上是JavaScript Object Notation,它明确地设计为有效的Javascript,以至于最坏的情况是您可以使用eval来解析它。 JQuery不使用特定的语法,它只需要一个特定的结构化对象,它不是一个地图,javascript对象中没有字符串键的概念,只有有效标识符的成员,以及不是的成员。
如果您有一个名为people-seen的字段,那么您可以将该规则输入验证器,如下所示:
{ "people-seen": {
required: true
}}