Validation 不同web浏览器中的不同验证消息

Validation 不同web浏览器中的不同验证消息,validation,cakephp,cakephp-2.4,Validation,Cakephp,Cakephp 2.4,我是CakePHP的新手,正在做我的第一个应用程序——CakePHP教程中的第一个博客。一切都很好,但有一件事困扰着我。当我在模型中定义验证规则时,验证工作正常 但每个网络浏览器都显示不同的信息。例如,firefox以捷克语显示消息(我来自捷克),chrome显示“请填写此字段”和internet explorer显示“此字段不能留空”。因此我尝试翻译消息(通过将参数消息添加到模型验证中)。这是可行的,但只有在internet explorer中,其他浏览器是不变的。有没有办法,如何在所有浏览器

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

但每个网络浏览器都显示不同的信息。例如,firefox以捷克语显示消息(我来自捷克),chrome显示“请填写此字段”和internet explorer显示“此字段不能留空”。因此我尝试翻译消息(通过将参数消息添加到模型验证中)。这是可行的,但只有在internet explorer中,其他浏览器是不变的。有没有办法,如何在所有浏览器中都有相同的验证消息

模型中的验证:

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

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


相反,cake所做的实际验证是在服务器端进行的。如果您的浏览器将数据发送到服务器,则cake将验证数据并返回错误消息。有两种检查方法。第一个(您看到的那个)是客户端的检查。输入字段有一个必需的参数。因此,浏览器知道字段不能为空,并用其语言表示。到目前为止,没有向服务器发送任何内容。填写并发送表单后,第二项检查即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)如果您输入一些文本(没有电子邮件),则会显示上面的消息(“请输入您的电子邮件”)

该字段会通过PO文件自动翻译。查看文档。这似乎是输入的
required
属性的问题(试试这个例子,它在不同的浏览器中给出了不同的错误)。据我所知,这与cakephp或语言实现无关。你可以试着这样改成努瑟:谢谢,我会试试的。。。。