【问题标题】:Colorbox resize on form validation (jQuery validate)表单验证上的颜色框调整大小(jQuery 验证)
【发布时间】:2012-01-16 15:56:39
【问题描述】:

好的,这就是交易:

我通过 AJAX 调用 Colorbox 中的表单,并设置了一个回调来处理其验证,效果很好。唯一的问题是,当我尝试在字段无效时调整框的大小(生成带有一类错误的标签)时,in 仅适用于第二次尝试。

我在点击事件上调用resize方法,它只在第二次点击时起作用。

我怀疑这是因为它会在生成标签之前尝试调整大小...我不知道如何规避这个问题。任何帮助将不胜感激。

$(".colorbox").click(function(e) {
    e.preventDefault();

    var el = $(this),
        sdHref = (el.attr("data-sd-href") ? el.attr("data-sd-href") : el.attr("href")),
        sdTitle = (el.attr("data-sd-title") ? el.attr("data-sd-title") : el.attr("title")),
        sdIframe = (el.attr("data-sd-iframe") ? true : false),
        sdWidth = (el.attr("data-sd-width") ? el.attr("data-sd-width") : false),
        sdHeight = (el.attr("data-sd-height") ? el.attr("data-sd-height") : false);

    $.colorbox({
        href: sdHref,
        title: sdTitle,
        iframe: sdIframe,
        width: sdWidth,
        height: sdHeight,
        scrolling: false,
        onComplete: function() { // I validate the form once the content is loaded
            $("form").validate({
                rules: {
                    phone: {
                        minlength: 10,
                        maxlength:10,
                        digits: true                    
                    }
                }
            });         
        }
    });
});

$('body').click(function(event) { // Even bubbling works on clicking the button, but only on the second try...
   if ($(event.target).is('button[type=submit]')) {
     $.colorbox.resize();
   }
});

【问题讨论】:

    标签: ajax jquery-validate colorbox


    【解决方案1】:

    我的解决方案:

     $('#form_nuevo_almacen').validate({           
        rules: {
            nombre: {
                required: true,
            },
            clave: {
                required: true,
            }
    
        },
        messages: {
            nombre: {
                required: "Almacen requerido",
            },
            clave:{
                required:'Clave requerida',
            }
        },
         showErrors: function(errorMap, errorList) {
            this.defaultShowErrors();
            $.colorbox.resize();
        },
        submitHandler: function(form){
            form.submit();
            $.colorbox.close();
        }
    });
    

    【讨论】:

      【解决方案2】:

      我找到了解决方案:

      $(".colorbox").click(function(e) {
          e.preventDefault();
          var el = $(this),
              sdHref = (el.attr("data-sd-href") ? el.attr("data-sd-href") : el.attr("href")),
              sdTitle = (el.attr("data-sd-title") ? el.attr("data-sd-title") : el.attr("title")),
              sdIframe = (el.attr("data-sd-iframe") ? true : false),
              sdWidth = (el.attr("data-sd-width") ? el.attr("data-sd-width") : false),
              sdHeight = (el.attr("data-sd-height") ? el.attr("data-sd-height") : false);
      
          $.colorbox({
              href: sdHref,
              title: sdTitle,
              iframe: sdIframe,
              width: sdWidth,
              height: sdHeight,
              scrolling: false,
              onComplete: function() { // I validate the form once the content is loaded
                  $("form").validate({
                      rules: {
                          phone: {
                              minlength: 10,
                              maxlength:10,
                              digits: true                    
                          }
                      },
                      invalidHandler: function(form, validator) {
                          var errors = validator.numberOfInvalids();
                          if (errors) {
                              window.setTimeout('$.colorbox.resize()',10);
                          }
                      }
                  });         
              }
          });
      });
      

      【讨论】:

      • 我正在尝试复制/修改您对我同样问题的答案。我正在使用内联表单。有关修改您的解决方案以使用我的表单的任何帮助将是一个很大的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      相关资源
      最近更新 更多