不同Web浏览器中的不同验证消息

时间:2014-01-13 14:40:07

标签: validation cakephp cakephp-2.4

我是CakePHP的新手,正在做我的第一个应用程序 - 第一个来自cakephp教程的博客。一切都很好,但有一件事困扰我。当我在模型中定义验证规则时,验证工作正常。

但是每个网络浏览器都显示不同的消息。例如用捷克语表示的firefox show message(我来自捷克语),chrome显示“请填写此字段”和Internet Explorer显示“此字段不能留空”。所以我试图翻译消息(通过添加参数消息)进入模型验证)。这是有效的,但只有在Internet Explorer中,其他浏览器都没有变化。有没有办法,如何在所有浏览器中使用相同的验证消息?

模型验证:

public $validate = array(
        'title' => array(
            'rule' => 'notEmpty',
            'message' => 'Please fill.....'
        ),

2 个答案:

答案 0 :(得分:0)

我认为你在谈论客户端验证消息。如果我说得对,您看到的消息是由浏览器创建的,并且是浏览器dipendant。 Cake只是通过在输入标记中设置required属性来告诉浏览器该字段是必需的。

相反,蛋糕所做的实际验证是服务器端。如果您的浏览器将数据发送到服务器,则cake会验证数据并返回错误消息

答案 1 :(得分:0)

有两张支票。第一个(你看到的那个)是客户端的检查。输入字段具有必需参数。因此,浏览器知道该字段不能为空,而是用它的语言表示。到目前为止,没有任何内容发送到服务器。填写并发送表格后,第二次检查到位,这是cakephp验证。

试试这个:

    'title' => array(
        'kosher' => array(
            'rule' => 'email',
            'message' => 'Please make sure your email is entered correctly.'
        ),
        'required' => array(
            'rule' => 'notEmpty',
            'message' => 'Please enter your email.'
        )

然后您将看到:1)如果您什么都不输入,则会显示浏览器消息(客户端),2)如果您输入了一些不是电子邮件的文本,则会显示上面的消息('请输入您的电子邮件。')