Form Validation With Bootstrap (jQuery)

352,035

Solution 1

I had your code setup on jsFiddle to try diagnose the problem.

http://jsfiddle.net/5WMff/

However, I don't seem to encounter your issue. Could you take a look and let us know?

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');
    }
});
});

Solution 2

You can get another validation on this tutorial : http://twitterbootstrap.org/bootstrap-form-validation

They use JQuery validation.

jquery.validate.js

jquery.validate.min.js

jquery-1.7.1.min.js

enter image description here

And you'll get the source code there.

 <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>

And The JQuery :

<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');
                  });

Here is the live example of the code: http://twitterbootstrap.org/live/bootstrap-form-validation/

Check the full tutorial: http://twitterbootstrap.org/bootstrap-form-validation/

happy coding.

Solution 3

Check this library, it's completable with booth bootstrap 3 and bootstrap 4

jQuery

<form>
    <div class="form-group">
        <input class="form-control" data-validator="required|min:4|max:10">
    </div>
</form>

Javascript

$(document).on('blur', '[data-validator]', function () {
    new Validator($(this));
});
Share:
352,035
Admin
Author by

Admin

Updated on July 16, 2021

Comments

  • Admin
    Admin almost 3 years

    Can someone please help me with this code? I am using bootstrap for the form and trying to validate it with jQuery. Unfortunately, the form validation isn't telling me what I'm doing wrong. I got the script from http://jqueryvalidation.org/documentation/ and followed a tutorial for client-sided validation.

    <!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>