2017-04-16 12 views
0

Jquery検証プラグインを使用していくつかの既存のページにクライアント側検証を追加しています。 https:// jqueryvalidation.org 検証は完全に機能しています。ただし、ユーザーはすべてのフィールドを中央揃えにしたいので、検証メッセージは中央に表示されます。jQuery検証プラグインがメッセージをテキストボックスの下に揃えたい場合

テキストボックスの中央に入力することはできますが、テキストボックスの下に確認メッセージが表示され、テキストボックスの開始位置が揃えられますか? 1

これは私がその下にテキストボックスに合わせ検証メッセージを達成しようとしていますものです:

これは私がこれまでの検証を示したものです。 2

ここでは、検証を使用するためのアイデアを得るために取り組んでいる簡単なコードを示します。実際のフォームは通常12-15の入力フィールドを持ち、すべてが中央に配置されています。

"center"タグは推奨されていませんが、可能ならば今のところそれを維持しようとしています。

<script src="https://jqueryvalidation.org/files/lib/jquery.js"></script> 
    <script src="https://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script> 
    <script src="https://jqueryvalidation.org/files/dist/additional-methods.min.js"></script> 

<script> 

    $(document).ready(function() { 
     $("#myForm").validate(); 
    }); 

</script> 

<style> 
    label.error { 
     display: block; 
     float: none; 
     color: red; 
    } 


    input { border: 1px solid black; } 
    input:focus { border: 1px solid black; } 
    input.error { border: 1px solid red; } 

</style> 

    <center> 
    <form id="myForm" action="/SubmitSuccess.html"> 

     <label>Input Number: </label> 
     <input type="text" name="input_number" data-rule-required="true" data-msg-required="Required field. Please enter 6 digits" size=10 maxlength=10 pattern="[0-9]{6}" data-msg-pattern="Please enter 6 digits" /> 

     <br> 

     <label>Input Alpha: </label> 
     <input type="text" name="input_alpha" id="input_alpha" data-rule-required="true" data-msg-required="Required field. Please enter 6 uppercase characters" size=10 maxlength=10 pattern="[A-Z]{6}" data-msg-pattern="Must be 6 uppercase characters." /> 

     <br><br> 

     Click Submit when complete<br> 

     <input type="submit" name="SUBMIT" value="SUBMIT" /> 

    </form> 
</center> 

JFiddle - https://jsfiddle.net/4d3xgud9

答えて

0

CSSだけ...
あなたのjQueryの検証プラグインを使用します。

さて、いくつかのHTML調整があります! CSSが(影響のエラーメッセージを)変え


label.error { 
    display: block; 
    float: none; 
    color: red; 

    position:relative;  /* added */ 
    top:0.2em;    /* added */ 
} 


td.top{     /* added */ 
    vertical-align:top;  /* added */ 
}       /* added */ 
td{      /* added */ 
    padding-bottom:4px;  /* added */ 
}       /* added */ 



HTMLテーブルを使用します(を変更!! -をすごいねえどんな素晴らしいアイデア!):

<form id="myForm" action="/SubmitSuccess.html"> 
    <table> 
    <tr> 
     <td class="top"> 
     <label>Input Number: </label> 
     </td> 
     <td> 
     <input type="text" name="input_number" data-rule-required="true" data-msg-required="Required field. Please enter 6 digits" size=10 maxlength=10 pattern="[0-9]{6}" data-msg-pattern="Please enter 6 digits" /> 
     </td> 
    </tr> 

    <tr> 
     <td class="top"> 
     <label>Input Alpha: </label> 
     </td> 
     <td> 
     <input type="text" name="input_alpha" id="input_alpha" data-rule-required="true" data-msg-required="Required field. Please enter 6 uppercase characters" size=10 maxlength=10 pattern="[A-Z]{6}" data-msg-pattern="Must be 6 uppercase characters." /> 

     </td> 
    </tr> 
    </table> 
    <br> 
    <br> 
    Click Submit when complete<br> 

    <input type="submit" name="SUBMIT" value="SUBMIT" /> 

</form> 




WORKING:

label.error { 
 
    display: block; 
 
    float: none; 
 
    color: red; 
 

 
    position:relative; 
 
    top:0.2em; 
 
} 
 

 

 
td.top{ 
 
    vertical-align:top; 
 
} 
 
td{ 
 
    padding-bottom:4px; 
 
} 
 

 

 
input { \t border: 1px solid black; } 
 
input:focus { border: 1px solid black; } 
 
input.error { border: 1px solid red; }
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 
"http://www.w3.org/TR/html4/loose.dtd"> 
 

 
<script src="https://jqueryvalidation.org/files/lib/jquery.js"></script> 
 
<script src="https://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script> 
 
<script src="https://jqueryvalidation.org/files/dist/additional-methods.min.js"></script> 
 

 
<script> 
 

 
    $(document).ready(function() { 
 
    $("#myForm").validate(); 
 
    }); 
 

 
</script> 
 

 
</head> 
 

 
<body bgcolor="white"> 
 

 
    <center> 
 
    <form id="myForm" action="/SubmitSuccess.html"> 
 
     <table> 
 
     <tr> 
 
      <td class="top"> 
 
      <label>Input Number: </label> 
 
      </td> 
 
      <td> 
 
      <input type="text" name="input_number" data-rule-required="true" data-msg-required="Required field. Please enter 6 digits" size=10 maxlength=10 pattern="[0-9]{6}" data-msg-pattern="Please enter 6 digits" /> 
 
      </td> 
 
     </tr> 
 

 
     <tr> 
 
      <td class="top"> 
 
      <label>Input Alpha: </label> 
 
      </td> 
 
      <td> 
 
      <input type="text" name="input_alpha" id="input_alpha" data-rule-required="true" data-msg-required="Required field. Please enter 6 uppercase characters" size=10 maxlength=10 pattern="[A-Z]{6}" data-msg-pattern="Must be 6 uppercase characters." /> 
 

 
      </td> 
 
     </tr> 
 
     </table> 
 
     <br> 
 
     <br> 
 
     Click Submit when complete<br> 
 

 
     <input type="submit" name="SUBMIT" value="SUBMIT" /> 
 

 
    </form> 
 
    </center> 
 

 
</body>



正しいユースケース:

  • HHHHHH
  • 偉大返信用
+1

ありがとう!テーブルは、セル内のメッセージの長さに応じてテキストボックスを移動するような、他の問題をもたらしました。しかし、それは私が持っていたよりも良かったし、私の質問に答えました! 詳細な回答をいただきありがとうございます。このプラグインを使って作業することを学ぶ上で非常に役立ちました! – dmayley

+0

それを読むのは大変です。 –

0

あなたが好きな場所にエラーメッセージを移動するerrorPlacement機能を使用することができます。ブートストラップ3で動作するエラー配置の例を次に示します。Bootstrap 3 with jQuery Validation Plugin

これまでのコードを変更して、これまでどおりに動作させる必要があります。

// override jquery validate plugin defaults 
$.validator.setDefaults({ 
    highlight: function(element) { 
     $(element).closest('.form-group').addClass('has-error'); 
    }, 
    unhighlight: function(element) { 
     $(element).closest('.form-group').removeClass('has-error'); 
    }, 
    errorElement: 'span', 
    errorClass: 'help-block', 
    errorPlacement: function(error, element) { 
     if(element.parent('.input-group').length) { 
      error.insertAfter(element.parent()); 
     } else { 
      error.insertAfter(element); 
     } 
    } 
}); 
0
$('#myform').validate({ // initialize the plugin 
     rules: { 
      "your field name or id": { 
       required: true 
      } 
     }, 
     messages: { 
      "your field name or id": { 
       required: "Enter something" 
      } 
     } 
    }); 
関連する問題