如何放置 PHP 字符串 jQuery 验证错误消息

how to put php string jQuery validation error message

本文关键字:验证 错误 消息 jQuery 字符串 何放置 PHP      更新时间:2023-09-26

我正在使用jquery验证来验证一个表单,js代码看起来像这样:

form.validate({
        messages: {
            years_of_experience: {
                range: "<?php echo Translation::tr('profileform.error.yearsOfExperience');?>"
            }
        },
        rules: {
            years_of_experience: {
                range: [0, 100]
            }
        }
});     

翻译::tr('profileform.error.yearsOfExperience'( ->对数据库进行简单的 mysql 调用并返回一个字符串(元素的错误消息(,但问题是我无法显示错误消息(我得到空白(。

如果我像这样更改 Javasctipt 代码,它可以正常工作:

form.validate({
        messages: {
            years_of_experience: {
                range: "Please select a number from 0 to 100"
            }
        },
        rules: {
            years_of_experience: {
                range: [0, 100]
            }
        }
});  

你可以帮我吗?

谢谢

php代码周围的引号告诉javascsript它只是一个字符串,没有任何解释。尝试

    form.validate({
        messages: {
            years_of_experience: {
                range: <?php echo json_encode( Translation::tr('profileform.error.yearsOfExperience') ); ?>;
            }
        },
        rules: {
            years_of_experience: {
                range: [0, 100]
            }
        }
   });  

好丑...但这应该有效。

最初的问题几乎与jQuery Validify无关,而与PHP有关,因为该页面早在任何JavaScript评估它之前就由PHP构建。 解决此问题的正确方法是查看浏览器中的源代码,以查看PHP出错的地方并相应地进行调整。 只要你看到一个字符串,jQuery Validate 就会使用该字符串。


但是,根据所需的消息,您根本不需要任何 PHP。 此插件会自动将rules中的参数插入到messages中。 第一个参数由 {0} 表示,第二个参数由 {1} 等表示。

messages: {
    years_of_experience: {
        range: "Please select a number from {0} to {1}"
    }
},
rules: {
    years_of_experience: {
        range: [0, 100]  // <- parameters
    }
}

结果:

请选择0到100之间的数字