Javascript 更新jqbootstrapvalidation匹配以仅在表单提交时验证

Javascript 更新jqbootstrapvalidation匹配以仅在表单提交时验证,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,如何将jqbootstrapvalidation的匹配更改为仅在表单提交时匹配。与所需字段一样,执行匹配。假设我有一个密码并重新键入密码字段。当我单击密码字段时,在重新键入密码的错误框中显示“匹配验证失败” $(function(){$(“input,select,textarea”)。not([type=submit]”。jqBootstrapValidation();});我是通过编辑jqBootstrapValidation.js来实现的。 在validation.validation上

如何将jqbootstrapvalidation的匹配更改为仅在表单提交时匹配。与所需字段一样,执行匹配。假设我有一个密码并重新键入密码字段。当我单击密码字段时,在重新键入密码的错误框中显示“匹配验证失败”



$(function(){$(“input,select,textarea”)。not([type=submit]”。jqBootstrapValidation();});我是通过编辑
jqBootstrapValidation.js
来实现的。 在
validation.validation
上,
params.submiting
确定它是提交

我需要执行一个带有BD访问权限的ajax,所以我创建了一个新的“验证器”(在
validatorTypes:ajax\u v2
),带有一个新属性(
somenteSubmit
)来指示它只在提交时使用

在js的开头,包括一个新选项:

(function( $ ){

    var createdElements = [];

    var defaults = {
        options: {
            somenteSubmit:false,//indicates the validator will happen only in   submit
            prependExistingHelpBlock: false,
            sniffHtml: true, // sniff for 'required', 'maxlength', etc
            preventSubmit: true, // stop the form submit event from firing if validation fails
            submitError: false, // function called if there is an error when trying to submit
            submitSuccess: false, // function called just before a successful submit event is sent to the server
            semanticallyStrict: false, // set to true to tidy up generated HTML output
            autoAdd: {
                helpBlocks: true
            },
            filter: function () {
                // return $(this).is(":visible"); // only validate elements you can see
                return true; // validate everything
            }
        },
验证中。验证

      // =============================================================
      //                                                    VALIDATION
      // =============================================================

      $this.bind(
        "validation.validation",
        function (event, params) {

          var value = getValue($this);
          var validar = true;


          // Get a list of the errors to apply
          var errorsFound = [];

          $.each(validators, function (validatorType, validatorTypeArray) {
            if (value || value.length || (params && params.includeEmpty) || (!!settings.validatorTypes[validatorType].blockSubmit && params && !!params.submitting)) {
              $.each(validatorTypeArray, function (i, validator) {

                  validar=true;
                  if ((!(params && params.submitting)) && (settings.validatorTypes[validatorType].somenteSubmit)) {
                      validar=false;
                  }  

                  if (validar){
                     if (settings.validatorTypes[validatorType].validate($this, value, validator)) {
                      errorsFound.push(validator.message);
                     }
                }
              });
            }
          });

          return errorsFound;
        }
      );
验证程序类型上

  ajax_v2: {
      name: "ajax_v2",
      init: function ($this, name) {
        return {
          validatorName: name,
          url: $this.data("validation" + name + "Ajax_v2"),
          lastValue: $this.val(),
          lastValid: true,
          lastFinished: true
        };
      },
      validate: function ($this, value, validator) {

            validator.lastValue = value;
            validator.lastValid = true;
            validator.lastFinished = false;
            var resultado= $.ajax({
              url: validator.url+value,
              data: ({}),
              dataType: "html",
              async :false
            }).responseText; ;

            if (resultado=="true") {
                return true;

            }else {
                return false;

            }
      },
      blockSubmit: true,
      somenteSubmit:true //execute this new validator only in submit .
    },
JSP:

登录

我通过编辑
jqBootstrapvalidation.js
实现了这一点。 在
validation.validation
上,
params.submiting
确定它是提交

我需要执行一个带有BD访问权限的ajax,所以我创建了一个新的“验证器”(在
validatorTypes:ajax\u v2
),带有一个新属性(
somenteSubmit
)来指示它只在提交时使用

在js的开头,包括一个新选项:

(function( $ ){

    var createdElements = [];

    var defaults = {
        options: {
            somenteSubmit:false,//indicates the validator will happen only in   submit
            prependExistingHelpBlock: false,
            sniffHtml: true, // sniff for 'required', 'maxlength', etc
            preventSubmit: true, // stop the form submit event from firing if validation fails
            submitError: false, // function called if there is an error when trying to submit
            submitSuccess: false, // function called just before a successful submit event is sent to the server
            semanticallyStrict: false, // set to true to tidy up generated HTML output
            autoAdd: {
                helpBlocks: true
            },
            filter: function () {
                // return $(this).is(":visible"); // only validate elements you can see
                return true; // validate everything
            }
        },
验证中。验证

      // =============================================================
      //                                                    VALIDATION
      // =============================================================

      $this.bind(
        "validation.validation",
        function (event, params) {

          var value = getValue($this);
          var validar = true;


          // Get a list of the errors to apply
          var errorsFound = [];

          $.each(validators, function (validatorType, validatorTypeArray) {
            if (value || value.length || (params && params.includeEmpty) || (!!settings.validatorTypes[validatorType].blockSubmit && params && !!params.submitting)) {
              $.each(validatorTypeArray, function (i, validator) {

                  validar=true;
                  if ((!(params && params.submitting)) && (settings.validatorTypes[validatorType].somenteSubmit)) {
                      validar=false;
                  }  

                  if (validar){
                     if (settings.validatorTypes[validatorType].validate($this, value, validator)) {
                      errorsFound.push(validator.message);
                     }
                }
              });
            }
          });

          return errorsFound;
        }
      );
验证程序类型上

  ajax_v2: {
      name: "ajax_v2",
      init: function ($this, name) {
        return {
          validatorName: name,
          url: $this.data("validation" + name + "Ajax_v2"),
          lastValue: $this.val(),
          lastValid: true,
          lastFinished: true
        };
      },
      validate: function ($this, value, validator) {

            validator.lastValue = value;
            validator.lastValid = true;
            validator.lastFinished = false;
            var resultado= $.ajax({
              url: validator.url+value,
              data: ({}),
              dataType: "html",
              async :false
            }).responseText; ;

            if (resultado=="true") {
                return true;

            }else {
                return false;

            }
      },
      blockSubmit: true,
      somenteSubmit:true //execute this new validator only in submit .
    },
JSP:

登录