2010-12-13 111 views
0

你好我正在使用一个已经有一些验证标准的应用程序,并且加载了特定于错误的隐藏div。现在我有一些动态行要填充,因为我不知道它们是什么输入类型,所以我使用jquery的验证插件自动执行验证过程。当jquery验证失败时加载自定义错误消息

现在我无法理解如何在某些需要的 元素尚未填充时能够显示块。目前我会检查一个条件,如

  if(country.length == 0 && state == 'xx') 
      { 
       go = false; 
       document.getElementById('reqStateMsg').style.display = 'block'; 
      } 

我该怎么做jQuery的验证方法?目前我只是加载所需的所有元素。但要显示错误的方法,我还必须添加“*”这将加载一个通用的方法,这将工作从我的动态输入元素,但我想加载我的静态输入元素的自定义错误div块。

现在我只是调用validate方法,我不知道如何从这里添加自定义错误div加载。

$('#FormInfo').validate(); 
+0

如果你使用jQuery,为什么你还在编写'document.getElementById()'? – 2010-12-13 17:23:49

回答

0

你可以这样做几个不同的方法,首先你可以使用errorContainer选项jQuery validate():

$("#form1").validate({ 
    errorLabelContainer: "#error-container-form1 ul", 
    wrapper: "li" 
}); 

随着HTML这样的:

<form action="#" id="form1"> 
    <label for="Country">Country:</label> 
    <input name="Country" title="Country is required" id="Country" class="required"/> 
    <label for="State">State:</label> 
    <input name="State" title="Please enter a state" id="State" class="required"/> 
    <input type="submit" value="Submit" /> 
</form> 

这将删除你需要一个特殊的<div>只为错误消息。


但是,如果你需要一个<div>错误消息,你可以做这样的事情:

$("#form2").validate({ 
    invalidHandler: function(form, validator) { 
     if (!$("form#form2").validate().element("#State2")) { 
      $("div#error-container-form2").append($("div#state-error")); 
      $("div#state-error").show(); 
     } 
    } 
}); 

和下面的HTML:

<form action="#" id="form2"> 
    <label for="Country2">Country:</label> 
    <input name="Country2" title="Country is required" id="Country2" class="required"/> 
    <label for="State2">State:</label> 
    <input name="State2" id="State2" class="required"/> 
    <input type="submit" value="Submit" /> 
</form> 
<div id="error-container-form2"></div> 

<div id="state-error" style="display:none">Please enter a State!</div> 

例子:http://jsfiddle.net/JWTTZ/

jQuery验证非常灵活。确保你阅读了文档here

0
if($(".erroclass").size() > 0) { 
    $("#reqStateMsg").css("display", "block"); 
} 
+0

以及应该只显示错误,所以我怎么会知道这是一个错误,在验证方法? – macha 2010-12-13 17:28:51

+0

更新了我的例子。 – 2010-12-13 18:00:02

0

这是不是很喜欢的jQuery ...

但这是:

$("#your-form-name").submit(function(){ 
if(country.length != 0 && state != 'xx') { 
    return true; 
} 
$("#reqStateMsg").fadeIn().fadeOut(5000); // slowly fadeout ;) 
return false; 
});