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

Passing a PHP array of rules to jQuery validator using PHP json_encode

检查了关于这个主题的其他帖子后,我仍然不清楚它应该如何工作。我正在生成一个 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: invalid property id

指的是 json 中的第一项,打印出来的是这样的:

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

问题出在你的语法上。你在 <?php ?> 标签周围有 {},最终你的 Javascript 会变成 {{"rules":{ .. }}},你想要 {rules:{ .. }}.

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

应该是

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

为了正常工作。