7

フォームの検証メッセージをカスタマイズできるように編集できる codeIgniter のファイルはありますか?

ここに画像の説明を入力

スペースを節約するために、それらを箇条書きリストに配置したいだけです。

エラーメッセージを出力するために使用しているコードは次のとおりです。

<div class="alert <?php echo $alert['alert_type']; ?> min-form">
        <button type="button" class="close" data-dismiss="alert">x</button>
        <h4><?php echo $alert['main_message']; ?></h4> 
        <?php echo $alert['sub_message']; ?>
</div>

基本的には、フォームから検証エラーを出力する CodeIgniter の関数から$alert['sub_message']データを取得するだけです。validation_errors()

4

8 に答える 8

11

エラー区切り文字は次の方法で変更できます。

<ul>
<?php echo validation_errors('<li>', '</li>'); ?>
</ul>

ドキュメント: https://www.codeigniter.com/user_guide/libraries/form_validation.html#changeing-the-error-delimiters

v3 の場合: https://www.codeigniter.com/userguide3/libraries/form_validation.html#changeing-the-error-delimiters

于 2012-06-30T07:24:45.987 に答える
8

form_validation クラスを拡張して、application/libraries/MY_form_validation.php追加の検証ルールを追加することにより、最大限の制御を実現できます。以下に例を添付します。

システム ライブラリを直接編集するのは悪い習慣です。CI は、より優れたオプション (クラス、ライブラリフックなどによるオーバーライド/カスタマイズMY_) を提供します。これにより、CI バージョンを簡単にアップグレードできるという利点が得られ、アプリケーションの移植性やカスタム コードをコア フレームワークから分離した状態に保つことができます。

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

/**
 * CodeIgniter Form Validation Extension
 */
class MY_Form_validation extends CI_Form_validation {

    /**
     *  MY_Form_validation::valid_url
     * @abstract Ensures a string is a valid URL
     */
    function valid_url($url) {
        if(preg_match("/^http(|s):\/{2}(.*)\.([a-z]){2,}(|\/)(.*)$/i", $url)) {
            if(filter_var($url, FILTER_VALIDATE_URL)) return TRUE;
        }
        $this->CI->form_validation->set_message('valid_url', 'The %s must be a valid URL.');
        return FALSE;
    }

    /**
     * MY_Form_validation::alpha_extra()
     * @abstract Alpha-numeric with periods, underscores, spaces and dashes
     */
    function alpha_extra($str) {
        $this->CI->form_validation->set_message('alpha_extra', 'The %s may only contain alpha-numeric characters, spaces, periods, underscores & dashes.');
        return ( ! preg_match("/^([\.\s-a-z0-9_-])+$/i", $str)) ? FALSE : TRUE;
    }

    /**
     * MY_Form_validation::numeric_comma()
     * @abstract Numeric and commas characters
     */
    function numeric_comma($str) {
        $this->CI->form_validation->set_message('numeric_comma', 'The %s may only contain numeric & comma characters.');
        return ( ! preg_match("/^(\d+,)*\d+$/", $str)) ? FALSE : TRUE;
    }

    /**
     * MY_Form_validation::matches_pattern()
     * @abstract Ensures a string matches a basic pattern
     */
    function matches_pattern($str, $pattern) {
        if (preg_match('/^' . $pattern . '$/', $str)) return TRUE;
        $this->CI->form_validation->set_message('matches_pattern', 'The %s field does not match the required pattern.');
        return FALSE;
    }   

}

/* End of file MY_form_validation.php */
/* Location: ./{APPLICATION}/libraries/MY_form_validation.php */
于 2012-06-30T23:10:30.190 に答える
3

<?php echo form_error('field name', '<div class="error">', '</div>'); ?> エラーを個別に表示するために使用できます 。

ドキュメンテーション

于 2014-01-04T15:26:53.587 に答える
0

を見てみましょうsystem/language/english/form_validation_lang.php

編集するか、コピーできると思いますapplication/language/english/form_validation_lang.php

于 2012-06-30T23:16:46.410 に答える
-8

JavaScript を使用してページ内の devexpress コントロールを検証するには、次のコードを使用します。

ASPxClientEdit.ValidateGroup(null);

また

ASPxClientEdit.ValidateGroup('validationgroup');
于 2012-10-22T06:49:06.217 に答える