URLを検証するにはどうすればよいですが、http://または空白の場合は無視しますか?

StackOverflow https://stackoverflow.com/questions/4783872

質問

URLのフォームフィールドを検証したいです。フィールドのデフォルトをhttp://に設定しました。ユーザーがURLを入力せず、http://を離れると、無効なURLと表示されます。 URLは必須ではないため、http://のみである場合、エラーメッセージを表示しないでください。その人がhttp://をURLとして提出する場合、どうすればそれを無視できますか?

ありがとう

役に立ちましたか?

解決

http:// 有効なURLではないので、とにかく許可したい場合は2つのオプションがあります

  1. aを作成します カスタム検証ルール, 、それは実際のURL +に当てはまります http://
  2. 使用 コールバックを検証する前に URLフィールドを空白に設定します http://

それが役立つことを願っています

編集

私は忘れました:あなたは必須を設定する必要はありませんが 'allowEmpty' => true

必要 - >フォームには、サーバーに送信されるフィールドxyzが含まれている必要があります

許可します- >フィールドが空白になる場合があります


上記のコールバック関数へのリンクを追加しましたが、とにかく..ここにあります:

あなたのモデルクラスで(私はそれが User):

class User extends AppModel {
    ..

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top