2016-04-06 8 views
1

私は3つのフィールド名、名前、電子メールを持つブートストラップモーダルを持っています。私はlaravel 5.2を使ってフォームを検証しています。それは正常にエラーメッセージを返すと私は入力フィールドのすぐ下に作成したdiv内の同じを印刷しています。しかし、問題は、エラーメッセージがポップアップ全体の高さを増やしていることです。エラーを表示するとブートストラップの高さが増加する

ポップアップの高さを上げずに入力の真下にエラーメッセージを表示したいと思います。私はそれをどうやってやれるの?

<div id="registerModal" class="modal fade"> 
    <div class="modal-dialog" style="margin-top: 10%;"> 
     <div class="modal-content"> 
      <div class="modal-body"> 
       <div class="row"> 
       <div class="col-sm-8 col-sm-offset-2 register-heading"> 
        <center> REGISTER </center> 
       </div> 
       <form method="POST" action="/user-register" id="register-form"> 
        <div id="status-message"></div> 
        <div class="col-sm-10 col-sm-offset-1 regsiter-form-fields"> 
         <input type="text" class="form-control register-fields" id="first_name" name="first_name" placeholder="Full Name"> 
         <span id="first-name-register-error-message" class="register-error-message"></span> 
        </div> 
        <div class="col-sm-10 col-sm-offset-1 regsiter-form-fields"> 
         <input type="text" class="form-control register-fields" id="second_name" name="second_name" placeholder="Last Name"> 
         <span id="second-name-register-error-message" class="register-error-message"></span> 
        </div> 
        <div class="col-sm-10 col-sm-offset-1 regsiter-form-fields"> 
         <input type="text" class="form-control register-fields" id="register_email" name="email" placeholder="Email"> 
         <span id="email-register-error-message" class="register-error-message"></span> 
        </div> 
        <div class="col-sm-10 col-sm-offset-1 regsiter-form-fields"> 
         <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
         <input name="register-submit" type="submit" id="register-form-submit" class="btn btn-danger pull-left btn-lg register-button" value="CONTINUE" /> 
        </div> 
       </form> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

----のJs ----

if (data.first_name) { 
    $("span#first-name-register-error-message").html(data.first_name).show(); 
} 
else { 
    $("span#first-name-register-error-message").hide(); 
} 

CSS ------

.regsiter-form-fields { 
    padding-bottom: 9%; 
} 
.error-message-register { 
    border-bottom: 1px red solid; 
    /** border-radius: 4px; **/ 
} 
+0

エラーメッセージを非表示にする代わりに、表示を非表示に変更することができます。これは、すでにエラーメッセージの高さを考慮し、表示されるメッセージに基づいて増減しない高さでモーダルを作成します。ただし、エラーが表示されていない場合は、目立つ空白があります。 – Tricky12

+0

@ Tricky12 Nice Solution ...しかし、ポップアップは大きくなります。非常に大きいのと同じように、私はそれを小さくしていいよ... –

答えて

0

あなたのエラーメッセージのposition: absolute;を使用し、上のいくつかの下のインデントを適用してください。親と他の要素との重複を避けるために...

.regsiter-form-fields { 
    padding-bottom: 20px; // modify this as per your needs.. 
} 
.register-error-message { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
} 
+0

こんにちは、質問に私のCSSを含めました。あなたの解決策を試してみましたが、エラーメッセージはすべてのフォームフィールドの一番上に表示されています... –

+0

あなたがフィドルを提供するなら、それは素晴らしいでしょう..しかし、あなたのコメントからは、絶対位置のbcz DOMの通常の流れから取り出しました。入力が重複しないように、padding-bottomを25または30px以上に増やしてください。 –

+0

さらに、エラーメッセージのフォントサイズを縮小し、エラーメッセージの下部の位置を変更することができますいくつかのボトムのインデントが役立つでしょう)入力間のホワイトスペースの問題を避けるために.. –

0

このように、文書の流れが中断されないように、絶対配置を使用する必要があります。

ただし、フォームグループごとにposition: relativeを設定することを忘れないでください。エラーが入力の下に表示され、互いの上に重ならないようにします。

関連する問題