3

ここに記載されているjQuery検証エンジンをいじっています

すべての JS ファイルをローカルにダウンロードしました。そして、単一の必須テキストボックスフィールドを持つ単純なフォームを作成しました.

問題1

この必須ルールにカスタム エラーを指定できません (custom-error-message オプションを指定したにもかかわらず)。代わりに、「このフィールドは必須です」というデフォルトのメッセージが表示されます。gitの例 (ここに表示) を使用してこのコードを作成しましたが、機能していません。どこがおかしいのか指摘してください。(同等のhtml5属性を使用する代わりに、JSオブジェクトリテラルでそれを行いたいです。)

私のコード:

<html>
<head>      
    <script type="text/javascript" src="scripts/jquery-1.9.0.min.js"></script>      
    <script type="text/javascript" src="scripts/jquery.validationEngine-en.js"></script>        
    <script type="text/javascript" src="scripts/jquery.validationEngine.js"> </script>      
    <link type="text/css" rel="stylesheet"  href="styles/validationEngine.jquery.css"  />   
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    <script type="text/javascript">
            $(document).ready(function(){
                $("#form1").validationEngine({'custom_error_messages' : {                                
                            '#username':{
                                'required':{
                                    'message':"Hey you cannot leave this field blank."
                                }
                            }     
                        }
                    });                         
                });

    </script>
</head>
<body>
    <form id="form1">
        <br /><br />
        <h2>Form 1</h2>
        Username: <input id="#username" type="text" class="validate[required]" ></input> <br />     
    </form>
</body>
</html>

問題 2

html でクラス値を指定する代わりに、JS でどの要素にどのルールを適用するかを指定するにはどうすればよいですか。html にバリデーション固有のものを混在させるよりも、クリーンで目立たない html を使用することをお勧めします。これは、次のようにjQuery Validation プラグインで可能です。

            $("#register-form").validate({
                ルール: {
                    ファーストネーム: "必須",
                    姓:「必須」、
                    Eメール: {
                        必須: 真、
                        電子メール: 本当
                    }、
                    パスワード: {
                        必須: 真、
                        最小長: 5
                    }、
                    同意する:「必須」
                }、
                メッセージ: {
                    firstname: "ファーストネームを入力してください",
                    lastname: "姓を入力してください",
                    パスワード: {
                        必須: "パスワードを入力してください",
                        minlength: "パスワードは 5 文字以上である必要があります"
                    }、
                    email: "有効なメールアドレスを入力してください",
                    同意する: 「私たちのポリシーを受け入れてください」
                }、
                submitHandler: 関数 (フォーム) {
                    form.submit();
                }
            });

これは jQuery 検証エンジンで可能ですか。

4

1 に答える 1

5

はい、可能です:リンク

例:

<input type="email" name="email" id="email" data-validation-engine="validate[required,custom[email]]"
    data-errormessage-value-missing="Email is required!" 
    data-errormessage-custom-error="Let me give you a hint: someone@nowhere.com" 
    data-errormessage="This is the fall-back error message."/>

また、JQuery 1.9 以降、過去のバージョンで機能していた多くの機能が削除または廃止され、数日前に修正が追加されたため、最新バージョンのjQuery.validationEngine v2.6.1をダウンロードすることをお勧めします。

編集 はまだ修正されているかどうかわかりませんが、.js ファイルで置き換えます

line28 : .live(...

line 28 : .on(...

live は jQuery 1.9 から削除されました

編集:

あなたは小さな間違いをしました:

<input id="**#**username" type="text" class="validate[required]" ></input> <br />

がそこにあるはずです:

<input id="username" type="text" class="validate[required]" ></input> <br/>  
于 2013-02-14T19:12:32.677 に答える