关于Jquery验证

时间:2017-09-01 10:06:06

标签: php jquery mysql

我将jquery验证放在select字段上,我取字段名是name =“course []”。我把它放在数组中,因为我想在表中存储多个选定的选项,但是当我在验证中使用此名称时,我的验证不适用于选择字段,任何人都可以建议我任何解决方案。

我的jquery代码在这里: -

       <script type="text/javascript">
       $("#formValidate").validate({
         rules: {
         course:{
                   required: true
               },
            messages: {
               course:{
                  required: "Enter a username";
               },
            errorElement : 'div',
           errorPlacement: function(error, element) {
             var placement = $(element).data('error');
             if (placement) {
               $(placement).append(error)
             } else {
               error.insertAfter(element);
             }
             }
              });
             </script>

我的html字段代码在这里: -

 <form class="formValidate" id="formValidate" action="" method="POST">
 <select multiple id="course" name="course[]">
 <option value="Php">PHP</option>
 <option value="ruby">RUBY</option>
 <option value="wordpress">WORDPRESS</option>
 <option value="java">java</option>
 </select>
 </form>

3 个答案:

答案 0 :(得分:0)

问题是您的字段名称是course[],而不是course。因此,您需要将对象键包装在引号中并包括大括号。

另请注意,您的代码有一些错误;您在对象中放置了;这是一个语法错误,并且您错过了结束}

$("#formValidate").validate({
  rules: {
    'course[]': { // note the quotes and braces here
      required: true
    },
    messages: {
      course: {
        required: "Enter a username"
      },
      errorElement: 'div',
      errorPlacement: function(error, element) {
        var placement = $(element).data('error');
        if (placement) {
          $(placement).append(error)
        } else {
          error.insertAfter(element);
        }
      }
    }
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>
<form class="formValidate" id="formValidate" action="" method="POST">
  <select multiple id="course" name="course[]">
    <option value="Php">PHP</option>
    <option value="ruby">RUBY</option>
    <option value="wordpress">WORDPRESS</option>
    <option value="java">java</option>
 </select>
 <button>Submit</button>
</form>

答案 1 :(得分:0)

如果您使用带有[]的数组添加字段名称以及'"

 ("#formValidate").validate({
     rules: {
     "course[]":{
               required: true
           },
        messages: {
           "course[]":{
              required: "Enter a username";
           },
        errorElement : 'div',
       errorPlacement: function(error, element) {
         var placement = $(element).data('error');
         if (placement) {
           $(placement).append(error)
         } else {
           error.insertAfter(element);
         }
         }
          });
         </script>

答案 2 :(得分:0)

请参阅下面的更新代码,它会打印验证邮件'Enter a username',这些邮件未显示在其他用户的答案中,因为他们错过了代码中}的结束rules

$("#formValidate").validate({

    rules: {
      'course[]': { required: true }
    },

    messages: {
      'course[]': { required: 'Enter a username' },
      errorElement: 'div',
      errorPlacement: function(error, element) {

        var placement = $(element).data('error');

        if (placement) {
          $(placement).append(error);
        } else {
          error.insertAfter(element);
        }
      }
    }
  });