2

我想验证 URL 的表单字段。我已将该字段的默认值设置为 http://。当用户没有输入 URL 并离开 http:// 时,它会显示无效 URL。URL 不是必需的,因此如果它只是 http://,则不应显示错误消息。如果此人提交 http:// 作为 URL,我如何使其忽略?

谢谢

4

1 回答 1

3

http://不是一个有效的 url,所以如果你想允许它,有 2 个选项

  1. 创建一个自定义验证规则,为真实的 url + http://返回 true
  2. 使用before validate 回调并将 url 字段设置为空白,如果它只是http://

希望有帮助

编辑

我忘了:你不需要设置但'allowEmpty' => true

必需-> 表单必须包含发送到服务器的字段 xyz

allowEmpty -> 字段可能为空


我在上面添加了回调函数的链接,但无论如何..这里是:

在您的模型类中(我只是假设它是User):

class User extends AppModel {
    ..

    function beforeValidate() {
        if (isset($this->data['User']['url']) && $this->data['User']['url'] == 'http://') {
            $this->data['User']['url'] = '';
        }
        return true;
    }
    ..
}

于 2011-01-24T15:54:15.323 回答