jquery
  • jquery-validate
  • 2013-11-21 140 views 0 likes 
    0

    我试图保持使用jQuery Validate插件时的默认错误消息位置和行为。当我设置validate()对象的任何属性时,默认行为似乎会改变。jQuery验证插件默认行为

    例如。如果我只是装点我与所需的属性HTML输入这里的结果:

    HTML属性:

    <input id="name" type="text" required/> 
    

    Dedfault jQuery Validate Behavior

    一旦我修改这里的验证对象的属性是什么,我得到:

    After Validate Property Change

    我使用的代码来修改:

    $("[id$='emailForm']").validate({ 
        debug: true, 
        rules: { 
         txtEmail: { 
          required: true, 
          email: true 
         } 
        } 
    }); 
    

    那么是什么给。为什么所有的格式和放置都会改变。什么是最简单的方式,我可以回到它默认的行为方式?

    +0

    你不显示足够的代码来解释你的照片。单独的jQuery代码不能做你所显示的,这是真正的默认行为=> http://jsfiddle.net/6UAs3/ – Sparky

    +0

    我可以添加确切的HTML属性,但除了我放入的内容,没有额外的代码。这是jQuery验证如何开箱即用的。 – EthanTowne

    +0

    你_think_是什么jQuery Validate插件的默认行为就是这样。您的第一张图片是HTML5兼容浏览器提供的默认HTML5验证。您的第二张图片是jQuery Validation插件的默认行为。 – Sparky

    回答

    1

    您的代码:

    <input id="name" type="text" required/> 
    

    required是HTML5验证属性。而你在第一张图片中看到的仅仅是你的HTML5兼容浏览器正在做的事情......它与插件无关。除非您调用.validate()方法对其进行初始化,否则该插件不会执行任何操作。

    一旦你调用.validate()方法,你正在初始化jQuery验证插件,然后它接管。你的第二张照片是插件的默认行为。

    演示插件的默认外观:http://jsfiddle.net/6UAs3/


    请参阅如何实现“看”你想同时使用jQuery验证插件这个提问/回答:How to display messages from jQuery Validate plugin inside of Tooltipster tooltips?

    -2

    当您首次创建验证对象时,将其保存在一个变量中,稍后用于触发验证。

    var validator = $("[id$='emailForm']").validate({ 
        debug: true, 
        rules: { 
         txtEmail: { 
          required: true, 
          email: true 
         } 
        } 
    }); 
    
    // Trigger validation at later point by invoking the valid method instead of validate 
    var isValid = validator.valid(); 
    
    +0

    所以这将保持默认的验证行为? – EthanTowne

    +0

    是的。但这取决于你默认的意思。如果您完全依赖html'required'属性,则不需要验证器插件。我不确定您的应用程序必须支持哪些浏览器,但您无法依赖必需的属性才能在旧浏览器中正常运行。每次调用验证方法都会对元素重新应用默认验证。关键是调用一次验证,然后使用返回的验证器对象并调用“valid()”方法 - 它将返回一个布尔值。 – Srini

    相关问题