Jquery Validate custom error message location

后端 未结 7 1742
一个人的身影
一个人的身影 2021-01-30 16:35

This looks very simply, but I can\'t figure it out. I\'m using the jquery validate plugin. I\'m trying to validate and

相关标签:
7条回答
  • 2021-01-30 17:00
     if (e.attr("name") == "firstName" ) {
         $("#firstName__validate").text($(error).text());
         console.log($(error).html());
     }
    

    Try this get text of error object

    0 讨论(0)
  • 2021-01-30 17:00

    Add this code in your validate method:

     errorLabelContainer: '#errors'
    

    and in your html, put simply this where you want to catch the error:

    <div id="errors"></div>
    

    All the errors will be held in the div, independently of your input box.

    It worked very fine for me.

    0 讨论(0)
  • 2021-01-30 17:06

    This Worked for me

    Actually error is a array which contain error message and other values for elements we pass, you can console.log(error); and see. Inside if condition "error.appendTo($(element).parents('div').find($('.errorEmail')));" Is nothing but finding html element in code and passing the error message.

        $("form[name='contactUs']").validate({
    rules: {
        message: 'required',
        name: "required",
        phone_number: {
            required: true,
            minlength: 10,
            maxlength: 10,
            number: false
        },
        email: {
            required: true,
            email: true
        }
    },
    messages: {
        name: "Please enter your name",
        email: "Please enter a valid email address",
        message: "Please enter your message",
        phone_number: "Please enter a valid mobile number"
    },
    errorPlacement: function(error, element) {
            $("#errorText").empty();
    
            if(error[0].htmlFor == 'name')
            {
                error.appendTo($(element).parents('div').find($('.errorName')));
            }
            if(error[0].htmlFor == 'email')
            {
                error.appendTo($(element).parents('div').find($('.errorEmail')));
            }
            if(error[0].htmlFor == 'phone_number')
            {
                error.appendTo($(element).parents('div').find($('.errorMobile')));
            }
            if(error[0].htmlFor == 'message')
            {
                error.appendTo($(element).parents('div').find($('.errorMessage')));
            }
          }
        });
    
    0 讨论(0)
  • 2021-01-30 17:10

    JQUERY FORM VALIDATION CUSTOM ERROR MESSAGE

    Demo & example

    $(document).ready(function(){
      $("#registration").validate({
        // Specify validation rules
        rules: {
          firstname: "required",
          lastname: "required",
          email: {
            required: true,
            email: true
          },      
          phone: {
            required: true,
            digits: true,
            minlength: 10,
            maxlength: 10,
          },
          password: {
            required: true,
            minlength: 5,
          }
        },
        messages: {
          firstname: {
          required: "Please enter first name",
         },      
         lastname: {
          required: "Please enter last name",
         },     
         phone: {
          required: "Please enter phone number",
          digits: "Please enter valid phone number",
          minlength: "Phone number field accept only 10 digits",
          maxlength: "Phone number field accept only 10 digits",
         },     
         email: {
          required: "Please enter email address",
          email: "Please enter a valid email address.",
         },
        },
      
      });
    });
    <!DOCTYPE html>
    <html>
    <head>
    <title>jQuery Form Validation Using validator()</title>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.js"></script>
    <style>
      .error{
        color: red;
      }
      label,
      input,
      button {
        border: 0;
        margin-bottom: 3px;
        display: block;
        width: 100%;
      }
     .common_box_body {
        padding: 15px;
        border: 12px solid #28BAA2;
        border-color: #28BAA2;
        border-radius: 15px;
        margin-top: 10px;
        background: #d4edda;
    }
    </style>
    </head>
    <body>
    <div class="common_box_body test">
      <h2>Registration</h2>
      <form action="#" name="registration" id="registration">
     
        <label for="firstname">First Name</label>
        <input type="text" name="firstname" id="firstname" placeholder="John"><br>
     
        <label for="lastname">Last Name</label>
        <input type="text" name="lastname" id="lastname" placeholder="Doe"><br>
     
        <label for="phone">Phone</label>
        <input type="text" name="phone" id="phone" placeholder="8889988899"><br>  
     
        <label for="email">Email</label>
        <input type="email" name="email" id="email" placeholder="john@doe.com"><br>
     
        <label for="password">Password</label>
        <input type="password" name="password" id="password" placeholder=""><br>
     
        <input name="submit" type="submit" id="submit" class="submit" value="Submit">
      </form>
    </div>
     
    </body>
    </html>

    0 讨论(0)
  • 2021-01-30 17:12

    HTML

    <form ... id ="GoogleMapsApiKeyForm">
        ...
        <input name="GoogleMapsAPIKey" type="text" class="form-control" placeholder="Enter Google maps API key" />
        ....
        <span class="text-danger" id="GoogleMapsAPIKey-errorMsg"></span>'
        ...
        <button type="submit" class="btn btn-primary">Save</button>
    </form>
    

    Javascript

    $(function () {
        $("#GoogleMapsApiKeyForm").validate({
          rules: {
              GoogleMapsAPIKey: {
                  required: true
              }
            },
            messages: {
                GoogleMapsAPIKey: 'Google maps api key is required',
            },
            errorPlacement: function (error, element) {
                if (element.attr("name") == "GoogleMapsAPIKey")
                    $("#GoogleMapsAPIKey-errorMsg").html(error);
            },
            submitHandler: function (form) {
               // form.submit(); //if you need Ajax submit follow for rest of code below
            }
        });
    
        //If you want to use ajax
        $("#GoogleMapsApiKeyForm").submit(function (e) {
            e.preventDefault();
            if (!$("#GoogleMapsApiKeyForm").valid())
                return;
    
           //Put your ajax call here
        });
    });
    
    0 讨论(0)
  • 2021-01-30 17:16

    You can simply create extra conditions which match the fields you require in the same function. For example, using your code above...

    $(document).ready(function () {
        $('#form').validate({
            errorPlacement: function(error, element) {
                //Custom position: first name
                if (element.attr("name") == "first" ) {
                    $("#errNm1").text(error);
                }
                //Custom position: second name
                else if (element.attr("name") == "second" ) {
                    $("#errNm2").text(error);
                }
                // Default position: if no match is met (other fields)
                else {
                     error.append($('.errorTxt span'));
                }
            },
            rules
    });
    

    Hope that helps!

    0 讨论(0)
提交回复
热议问题