【发布时间】:2012-11-25 21:06:39
【问题描述】:
目标:我想在容器中显示焦点字段错误消息。
到目前为止我做了什么:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
label.pre {
display:inline-block;
width:60px;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"
type="text/javascript"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"
type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("form").validate({
messages: {
name: "Please specify your name.",
email: {
required: "We need your email address to contact you.",
email: "Your email address must be in the format of name@domain.com."
},
url: "A valid URL, please.",
comment: "Please enter your comment."
},
showErrors: function (errorMap, errorList) {
if (errorList.length) {
$("span").html(errorList[0].message);
}
}
});
});
</script>
</head>
<body>
<span></span>
<form action="#">
<div>
<label class="pre" for="entry_0">Name *</label>
<input type="text" class="required" name="name" id="entry_0">
</div>
<div>
<label class="pre" for="entry_1">Email *</label>
<input type="text" class="required email" name="email"
id="entry_1">
</div>
<div>
<label class="pre" for="entry_2">URL</label>
<input type="text" class="url" name="url" id="entry_2">
</div>
<div>
<textarea class="required" name="comment" id="entry_3" rows="7" cols="35"></textarea>
</div>
<div>
<input type="submit" name="submit" value="Submit">
</div>
</form>
</body>
</html>
演示:http://jsfiddle.net/RainLover/32hje/
问题:
- 如果单击提交按钮,容器(跨度)显示第一个 错误消息,无论关注哪个字段。
- 使用 Tab 键聚焦在字段上效果很好(URL 字段除外),但用鼠标聚焦不能正确更新 span HTML。
【问题讨论】:
-
让你加载 css.. 不知道你为什么要使用 span 来显示错误..因为 jquery 验证本身就是这样做的.. 它会创建错误容器(label.error),如果有任何错误
-
@bipen: "不确定你为什么要使用 span 来显示错误" 只显示一条错误消息——与焦点字段相关的一条。
标签: javascript jquery forms jquery-validate