2017-09-27 7 views
-3

このフォームがあります。フォームにjQuery検証プラグインを追加しましたが、検証エラーが発生するたびに入力ボックス内に表示されます。ここにhtmlコードスニペットがあります。jQueryデフォルトの検証エラーが入力ボックス内に表示される

メールの下にエラーが表示されます。パスワードのボックスのように表示されます。 <div id="emailInputGroup">は問題を引き起こしていますが、削除するとinput-group-addonが失われます。ここで

<div id="loginFormGroup" class="form-group"> 
    <label for="emailLabel" style="color:white"><strong>Email ID</strong></label> 
    <div id="emailInputGroup" class="input-group"> 
    <input name="email" type="email" class="form-control" placeholder="abc" autofocus></input> 
    <span class="input-group-addon">@abc.org</span> 
    </div> 
</div> 
<div class="form-group"> 
    <label for="passwordLabel" style="color:white"><strong>Password</strong></label> 
    <input name="password" type="password" class="form-control" placeholder="password" /> 
</div> 

はスクリーンショットです:

screenshot

私はウェブ開発の初心者だけど、些細な問題であるように思われる場合は親切に私と一緒にクマ。
ありがとうございます。

これは、jQueryのコードです:

$(document).ready(function(){ 
    $.validator.addMethod("customValidator", function(value, element) { 
    return /^[a-zA-Z]+$/.test(value); 
}, 'No special char2'); 

    $("#signIn").click(function(){ 
      $("#loginForm").valid(); //default 
    }); 

    $("#loginForm").validate({ 
       rules: { 
         email: { 
            required: true, 
            minLength: 3, 
            maxLength: 10, 
            customValidator: true 
         }, 
         password: { 
            required: true, 
            minLength: 4, 
            maxLength: 32 
         } 
       }, 
       message: { 
         email: { 
            required: "email can't be empty", 
            minLength: "At least 3 email characters.", 
            maxLength: "At most 10 email characters." 

         }, 
         password: { 
            required: "password can't be empty", 
            minLenght: "At least 4 password characters", 
            maxLength: "At most 32 password characters" 
         } 
       } 
      }); 
}); 

それも文法的に正しいかどうかはわかりません。

+0

ですか? :/ – WhiteSword

+3

私は落札していませんが、jquery検証は入力要素の直後にエラー「」を追加します。しかし、これを操作するには、validate関数内で独自のjqueryコードのエラー割り当てを定義します。あなたの質問と一緒にjquery検証関数を投稿すると、私はあなたを助けることができます... –

+0

プラグインを使用して(リンク付きで)言及し、プラグインを初期化するために使用されるjQueryコードを共有してください。 –

答えて

1

あなたはjQueryの検証では、あなたのエラーを配置したい場所をカスタマイズするerrorPlacementを使用することができます

$("#loginForm").validate({ 
    rules: { 
     .......... 
    }, 
    message: { 
     .......... 
    }, 
    errorPlacement: function(error, element) { 
    // if the element is email, then append the error to its parent. 
    // which means the error will be rendered below the span 
    if (element.attr("name") == "email") { 
     error.appendTo(element.closest('div')); 
    } else { 
     error.insertAfter(element); // this is the default behaviour 
    } 
    } 
}); 

ここでは、このための任意の理由がdownvotedさfiddle

+0

それはまだ同じ行にエラーを与えているが、ありがとう私はそれを行う方法のアイデアを持っています。 – WhiteSword

+0

@WhiteSwordフィドルはデモンストレーションの目的でのみ使用されています。スタイリングとポジションを自分で追加する必要があります。 – adiga

-1

</input>を削除してオープニングタグをインラインタグにすることはできますか? like:

<input name="email" type="email" class="form-control" placeholder="abc" autofocus/> 

これは機能しますか?

+0

番号をご覧ください。 – WhiteSword

+1

あなたが正しいです、あなたのスパンはそのようにエラーを印刷しています。私はあなたのパスワードエラーとその罰金を参照してください。もう一度試してください。 試してみてください: @ abc.org

+0

同じ問題。 – WhiteSword

関連する問題