我正在使用最新的jQuery库和jquery validate插件来验证某种形式:
我已经在我的页脚中放置了一些表单来验证。一旦显示一些错误消息,我的页脚应该被动画和拉伸。 验证工作正常,只是没有调用errorPlacement。 我也读过(这里:jQuery Validation errorPlacement ),validate()已经有一个errorPlacement默认动作,应该由我覆盖。 (我想用以下代码,我的消息将不再显示,对吧?
我尝试过(当然还有其他元素(消息/规则):
$(document).ready(function(){ //.ready -> steht erst nach dem Laden des DOMs zur Verfügung
$("#nlForm").validate({
debug: true,
onfocusout: false,
onKeyUp: false,
errorLabelContainer: $("#results"),
wrapper: "li", //wrapping the errormessages in <li>
rules: { },
messages: { },
errorPlacement: function( ) {
$("#footer").animate({
height: "300px",
}, 1500 );
},
submitHandler: function(form) {
$('#results').css('display', 'none') //hides my results-div in the beginning
$("#footer").animate({
height: "300px",
}, 1500 );
var docHeight = $(document).height();
var windowHeight = $(window).height();
var footerheight = 70; //additional pixels of stretched footer
var scrollPos = docHeight - windowHeight + footerheight;
$('html, body').animate({ //scrolling down
scrollTop: scrollPos+'px'
}, 1500);
$.post('/process.php', $("#nlForm").serialize(), function(data) {
$('#results').html(data);
});
$('#results').fadeIn(1500); //fades in my results-div
}
});
});
它不会给我任何错误,但它也没有动画。 我不知道为什么我的errorPlacement函数没有被调用。 (我也尝试添加
document.write('hi there')
看看函数是否被调用。但它没有......
如果有人能发布一些有效的简单例子,我会很高兴的。 或者告诉我我可以改变什么...
此外,我打算为错误的外观设置动画。知道如何实现这一目标吗? 我必须得到即将在我的results-div中生成的label-object。 我该如何解决这个问题?
非常感谢
欢呼声
(sry btw。第一次在错误的地方张贴..)
-------不幸的是我还没有发布任何答案所以我必须编辑我的帖子------- 回答:
感谢您的回答; 到1。;我知道我刚刚省略了它们。
rules: {
nlName: {
rangelength: [3, 25], // muss zwischen 3 und 25 zeichen lang sein.
required: true,
notName: true,
},
nlEmail: {
required: true,
email: true, //has to be a valid email, returns true if so.
}
}, //ohne Komma gehts nicht...
messages: {
nlName: {
required: "Bitten geben Sie einen Namen ein",
notName: "Ihr Name lautet nicht 'Name'!",
rangelength: "Ihr Name muss zwischen 3 und 25 Zeichen lang sein.",
},
nlEmail: "Ihre Emailadresse scheint ungültig zu sein",
},
因为它主要用德语,这部分效果很好。 我不明白你的意思是'形式'吗? 你的意思是没有代码将错误放在任何地方吗? 这是真的,我直到现在才这样做。我通过正常的消息显示方式。 但是仍然显示我的错误是暗示我的errorPlacement没有被正确调用,不是吗?
只有在每个人都可以的情况下才会调用submitHandler,这是明确的。 我只做两次动画。曾经有一个地方显示最终消息'成功的订阅blabla,由我的process.php生成 并且只有在必须显示错误时...
好吧,我一定会看看这个invalidHandler。谢谢你。
答案 0 :(得分:1)
我注意到代码中有两件事:
function(error, element) { }
如果您希望它出现,您需要将error
对象放在页面的某个位置。对于表单上的每个错误都会调用此方法,因此我认为这不是您要实现的目标。我建议您使用invalidHandler
选项。这允许您在表单上存在验证错误时执行动画。
编辑:注意:如果表单上没有验证错误,则submitHandler
称为。