使用PHP json_encode将PHP规则数组传递给jQuery验证器

时间:2015-03-09 18:31:43

标签: javascript php jquery jquery-validate

检查了关于这个主题的其他帖子后,我仍然不清楚它应该如何工作..我正在生成一个PHP数组规则(因为表单字段是动态的)来应用jQuery验证器所需的规则。我正在使用的代码..

$( "#the-form" ).validate({
    <?php echo json_encode($rules);?>
});

$rules数组如下所示:

Array
(
[rules] => Array
    (
        [uName] => Array
            (
                [required] => 1
            )

        [uEmail] => Array
            (
                [required] => 1
                [email] => 1
            )

        [uPassword] => Array
            (
                [minlength] => 5
            )

        [uPasswordConfirm] => Array
            (
                [minlength] => 5
                [equalTo] => #uPassword
            )
    )
)    

控制台正在查看此错误:

  

SyntaxError :无效的属性ID

参考json中的第一个打印出来的项目:

{"rules":{"uName":{"required":true},"uEmail":{"required":true,"email":true},"uPassword":{"minlength":5},"uPasswordConfirm":{"minlength":5,"equalTo":"#uPassword"}}}

1 个答案:

答案 0 :(得分:4)

问题在于您的语法。 {}代码周围有<?php ?>,这样最终会导致您的Javascript获得{{"rules":{ .. }}},而您需要{rules:{ .. }}.

$( "#the-form" ).validate({
    <?php echo json_encode($rules);?>
});

应该是

$( "#the-form" ).validate(
    <?php echo json_encode($rules);?>
);

为了正常工作。