在jquery验证失败时加载自定义错误消息

时间:2010-12-13 17:22:29

标签: jquery html jquery-validate

您好我正在使用已经有一些验证标准的应用程序,并加载特定于错误的隐藏div。现在我有一些动态行要填充,因为我不知道它们将是什么输入类型,我使用jquery的验证插件自动化验证过程。

现在我无法理解在需要时我将如何显示块 元素尚未填充。现在我会检查一个条件,如

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

我将如何在jQuery验证方法中执行此操作?目前我只是加载了所需的所有元素。但是要显示错误方法,我还必须添加“ * ”,这将加载一个通用方法,这将从我的动态输入元素,但我想加载我的自定义错误div块为静态输入元素。

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

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这不像jQuery那样...

但这是:

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

答案 2 :(得分:0)

您可以通过几种不同的方式执行此操作,首先您可以使用jQuery validate()的errorContainer选项:

$("#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 validate非常灵活。请务必仔细阅读文档here