<分区>
我已经搜索和阅读(不仅仅是关于 SO),但似乎无法找到解决此问题的方法。基本上,发生的事情是 jQuery 验证插件(根据文档)应该隐藏在其配置中设置的 errorContainer。不幸的是,它并没有隐藏它,它只是删除了内容。
为了重现该问题,只需在该字段中输入一个非电子邮件值,然后单击页面上的其他位置。您应该会看到错误消息出现。现在进入并删除值,看看会发生什么。错误消息消失但容器未隐藏,并且由于它的样式(边框/背景/等)即使在更正错误后仍然可以看到。
此 div 的相关 CSS:
div#mailform div#error {
font-size: 10px;
width: 288px;
text-align: center;
display: inline;
float: left;
position: fixed;
z-index: 1;
padding: 2px;
margin-left: 6px;
background-color: #fcd6cf;
border: 1px solid #bb1124;
display: none;
}
我正在使用的 jQuery,包括我用来处理字段默认值的另一个函数(已经测试禁用另一个函数以查看是否干扰显示/隐藏):
$.fn.search = function() {
return this.focus(function() {
if( this.value == this.defaultValue ) {
this.value = "";
}
}).blur(function() {
if( !this.value.length ) {
this.value = this.defaultValue;
}
});
};
$("#email").search();
$("#subscribeform").validate({
errorContainer: "#error",
errorLabelContainer: "#error",
errorClass: "invalid",
rules: {
email: {
email: true
},
},
messages: {
name: "Please specify your name",
email: {
email: "Please enter a valid email address."
}
}
});
根据位于以下位置的验证插件文档:http://docs.jquery.com/Plugins/Validation/validate#toptions ,errorContainer 参数“为错误消息使用附加容器。作为 errorContainer 给出的元素在发生错误时全部显示和隐藏。”(我强调)。但这显然不会发生!
所以我很困惑,并且急于找出我的代码出了什么问题,这样我就可以解决这个问题并启动它的 PHP 方面。在此先感谢您的阅读以及你们可以提供的任何帮助。