2013-08-18 25 views
23

誰かがこのコードを手伝ってくれますか?私はフォームのブートストラップを使用して、jQueryで検証しようとしています。残念ながら、フォームの検証は、私が間違っていることを私に伝えていません。私はhttp://jqueryvalidation.org/documentation/からスクリプトを入手し、クライアント側の検証のためのチュートリアルに従った。フォーム検証(ブートストラップ)(jQuery)

<!DOCTYPE html> 

<html> 
<head> 
     <meta charset="utf=8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<script src="js/jquery.validate.min.js"></script> //Script found online 

     <script> 
      $(document).ready(function(){ 

      $('#contact-form').validate(
      { 
       rules: { 
       name: { 
        minlength: 2, 
        required: true 
       }, 
       email: { 
        required: true, 
        email: true 
       }, 
       message: { 
        minlength: 2, 
        required: true 
       } 
       }, 
       highlight: function(element) { 
       $(element).closest('.control-group').removeClass('success').addClass('error'); 
       }, 
       success: function(element) { 
       element 
       .text('OK!').addClass('valid') 
       .closest('.control-group').removeClass('error').addClass('success'); 
       } 
      }); 
      }); // end document.ready 
     </script> 

    </head> 

    <div class="hero-unit"> 
     <h1>Contact Form</h1> </br> 

    <form method="POST" action="contact-form-submission.php" class="form-horizontal" id="contact-form"> 
     <div class="control-group"> 
      <label class="control-label" for="name">Name</label> 
      <div class="controls"> 
       <input type="text" name="name" id="name" placeholder="Your name"> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label" for="email">Email Address</label> 
      <div class="controls"> 
       <input type="text" name="email" id="email" placeholder="Your email address"> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label" for="subject">Subject</label> 
      <div class="controls"> 
        <select id="subject" name="subject"> 
         <option value="na" selected="">Choose One:</option> 
         <option value="service">Feedback</option> 
         <option value="suggestions">Suggestion</option> 
         <option value="support">Question</option> 
         <option value="other">Other</option> 
        </select> 
      </div> 
     </div> 
     <div class="control-group"> 
      <label class="control-label" for="message">Message</label> 
      <div class="controls"> 
       <textarea name="message" id="message" rows="8" class="span5" placeholder="The message you want to send to us."></textarea> 
      </div> 
     </div> 
     <div class="form-actions"> 
      <input type="hidden" name="save" value="contact"> 
      <button type="submit" class="btn btn-success">Submit Message</button> 
      <button type="reset" class="btn">Cancel</button> 
     </div> 
    </form> 

</div> 

     <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
     <script src="js/bootstrap.js"></script> 


    </body> 

答えて

31

問題を診断するためにjsFiddleでコードをセットアップしました。

http://jsfiddle.net/5WMff/

しかし、私はあなたの問題が発生していないようです。 ご覧いただき、お知らせください。

HTML

<div class="hero-unit"> 
<h1>Contact Form</h1> 
</br> 
<form method="POST" action="contact-form-submission.php" class="form-horizontal" id="contact-form"> 
    <div class="control-group"> 
     <label class="control-label" for="name">Name</label> 
     <div class="controls"> 
      <input type="text" name="name" id="name" placeholder="Your name"> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="email">Email Address</label> 
     <div class="controls"> 
      <input type="text" name="email" id="email" placeholder="Your email address"> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="subject">Subject</label> 
     <div class="controls"> 
      <select id="subject" name="subject"> 
       <option value="na" selected="">Choose One:</option> 
       <option value="service">Feedback</option> 
       <option value="suggestions">Suggestion</option> 
       <option value="support">Question</option> 
       <option value="other">Other</option> 
      </select> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label" for="message">Message</label> 
     <div class="controls"> 
      <textarea name="message" id="message" rows="8" class="span5" placeholder="The message you want to send to us."></textarea> 
     </div> 
    </div> 
    <div class="form-actions"> 
     <input type="hidden" name="save" value="contact"> 
     <button type="submit" class="btn btn-success">Submit Message</button> 
     <button type="reset" class="btn">Cancel</button> 
    </div> 
</form> 

Javascriptを

$(document).ready(function() { 

$('#contact-form').validate({ 
    rules: { 
     name: { 
      minlength: 2, 
      required: true 
     }, 
     email: { 
      required: true, 
      email: true 
     }, 
     message: { 
      minlength: 2, 
      required: true 
     } 
    }, 
    highlight: function (element) { 
     $(element).closest('.control-group').removeClass('success').addClass('error'); 
    }, 
    success: function (element) { 
     element.text('OK!').addClass('valid') 
      .closest('.control-group').removeClass('error').addClass('success'); 
    } 
}); 
}); 
+0

私の問題は、外部のjavascript文書を正しく呼び出さなかったことがわかりました。ご協力いただきありがとうございます! (また、私はそこに私のカスタムCSSを取得しようとしましたが、bootstrap.cssはstyle.cssをオーバーライドしていました)。 – user2693351

+0

私の問題を解決するのに役立ちました。 –

0

からdivを削除した後にしてみてくださいformor送信ボタンにonclickのメソッドを使用してみてください。

1

enter image description here

ここ

のための非常にシンプルかつ軽量なプラグインですブートストラップと検証、あなたが好きならば、あなたがそれを使用することができます。 https://github.com/wpic/bootstrap.validator.js

+0

これは不完全であり、付属の例では機能しません! –

+0

私はsample.htmlを追加しました – user1079877

7

をあなたがこのチュートリアルで別のバリデーションを取得することができます: http://twitterbootstrap.org/bootstrap-form-validation

彼らはjQueryの検証を使用。

jquery.validate.js 

jquery.validate.min.js 

jquery-1.7.1.min.js 

enter image description here

そして、あなたがそこにソースコードを取得します。

<form id="registration-form" class="form-horizontal"> 
<h2>Sample Registration form <small>(Fill up the forms to get register)</small></h2> 
<div class="form-control-group"> 
     <label class="control-label" for="name">Your Name</label> 
<div class="controls"> 
      <input type="text" class="input-xlarge" name="name" id="name"></div> 
</div> 
<div class="form-control-group"> 
     <label class="control-label" for="name">User Name</label> 
<div class="controls"> 
      <input type="text" class="input-xlarge" name="username" id="username"></div> 
</div> 
<div class="form-control-group"> 
     <label class="control-label" for="name">Password</label> 
<div class="controls"> 
      <input type="password" class="input-xlarge" name="password" id="password"> 

</div> 
</div> 
<div class="form-control-group"> 
      <label class="control-label" for="name"> Retype Password</label> 
<div class="controls"> 
       <input type="password" class="input-xlarge" name="confirm_password" id="confirm_password"></div> 
</div> 
<div class="form-control-group"> 
      <label class="control-label" for="email">Email Address</label> 
<div class="controls"> 
       <input type="text" class="input-xlarge" name="email" id="email"></div> 
</div> 
<div class="form-control-group"> 
      <label class="control-label" for="message">Your Address</label> 
<div class="controls"> 
       <textarea class="input-xlarge" name="address" id="address" rows="3"></textarea></div> 
</div> 
<div class="form-control-group"> 
      <label class="control-label" for="message"> Please agree to our policy</label> 
<div class="controls"> 
      <input id="agree" class="checkbox" type="checkbox" name="agree"></div> 
</div> 
<div class="form-actions"> 
      <button type="submit" class="btn btn-success btn-large">Register</button> 
      <button type="reset" class="btn">Cancel</button></div> 
</form> 

とjQuery

http://twitterbootstrap.org/live/bootstrap-form-validation/

チェックフルチュートリアル: http://twitterbootstrap.org/bootstrap-form-validation/

幸せなコーディングここ

<script src="assets/js/jquery-1.7.1.min.js"></script> 

<script src="assets/js/jquery.validate.js"></script> 

<script src="script.js"></script> 
<script> 
      addEventListener('load', prettyPrint, false); 
      $(document).ready(function(){ 
      $('pre').addClass('prettyprint linenums'); 
        }); 

は、コードの実際の例です。

+2

チュートリアルへのリンクが死んでいるようです。 –

関連する問題