如何突出显示无效部分 - twitter bootstrap/jquery/validate插件

eof*_*eof 4 jquery-plugins jquery-validate twitter-bootstrap

我在twitter bootstrap中有一个表单:

<div class="form-div">
<form id="fvujq-form1" method="post" action="">
                    <div class="control-group name">
                    <fieldset>
                        <label>Name *</label>
                        <input type="text" name="name">
                    </fieldset>
                    </div>
                    <div class="control-group email">
                    <fieldset>
                        <label>E-Mail *</label>
                        <input type="text" name="email">
                    </fieldset>
                    </div>
                    <div class="control-group comment">
                    <fieldset>
                        <label>Your comment *</label>
                        <textarea name="comment"></textarea>
                    </fieldset>
                    </div>
              <button class="btn btn-primary">Submit</button> 
            </form>
        </div>
Run Code Online (Sandbox Code Playgroud)

这就是我用bassistance Validate插件验证它的方法:

$(document).ready(function() {
        $("#fvujq-form1").validate({
            submitHandler:function(form) {
                SubmittingForm();
            },
            success: function(label) {
                 label.html("&#10004;").addClass("valid");
               },
            onfocusout: function(element) { $(element).valid(); },
            focusInvalid: false,
            highlight: function(element, errorClass, validClass) {
                 $('.form-div').find('.control-group' + element.id).addClass('error');
              },
              unhighlight: function(element, errorClass, validClass) {
                 $('.form-div').find('.control-group' + element.id).removeClass('error');
              },
            errorClass: "help-inline",
            errorElement: "strong"
Run Code Online (Sandbox Code Playgroud)

我想将.error添加到当前验证的div,但是此代码将类添加到每个.control-group出现,不仅验证了一个:(

4年帮助.

Yac*_*ack 5

JSFiddler示例

这将在您离开每个字段时进行验证,或者当您点击提交按钮时,符合规则的所有字段都将显示错误.

HTML

<form action="" id="fvujq-form1" class="form-horizontal">
<fieldset>  
    <div class="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="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="control-group">
      <label class="control-label" for="comment">Comment</label>
      <div class="controls">
        <input type="text" class="input-xlarge" name="comment" id="comment">
      </div>
    </div>    
    <div class="form-actions">
      <button type="submit" class="btn btn-primary">Submit</button>

    </div>
  </fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

$(document).ready(function(){

 $('#fvujq-form1').validate(
 {
  rules: {
    name: {
      minlength: 2,
      required: true
    },
    email: {
      required: true,
      email: true
    },
    comment: {
      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');
  }
 });
});
Run Code Online (Sandbox Code Playgroud)