【问题标题】:Different validation messages in different web browsers不同网络浏览器中的不同验证消息
【发布时间】:2014-01-13 14:40:06
【问题描述】:

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

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

模型验证:

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

【问题讨论】:

标签: validation cakephp cakephp-2.4


【解决方案1】:

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

相反,cake 所做的实际验证是在服务器端进行的。如果您的浏览器向服务器发送数据,那么 cake 会验证数据并返回错误消息

【讨论】:

    【解决方案2】:

    有两个检查到位。第一个(您看到的那个)是客户端的检查。输入字段有一个必需的参数。所以浏览器知道该字段不能为空,并说比它的语言。到目前为止,没有任何东西发送到服务器。填写并发送表单后,进行第二次检查,即 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)如果你输入一些文本,不是电子邮件,那么就会出现上面的消息('请输入您的电子邮件.')

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多