【发布时间】:2014-02-21 20:00:46
【问题描述】:
我正在尝试在使用 jQuery 构建的表单上应用字段验证。我也在使用animate.css 来应用不同的动画类。
假设我有一个电子邮件字段,用户单击提交并检查他们输入的电子邮件是否有效。如果不是,请将shake 动画应用于输入字段。
我目前的代码:
$submit.click(function(event) {
event.preventDefault();
var email = $input.val();
// This does not seem to ever fire.
$input.removeClass('shake');
if (!method.validateEmail(email) || $.trim(email) == '') {
$input.addClass('shake');
return;
}
$form.submit();
});
这适用于用户第一次提交表单。但是,任何后续点击都不会再现抖动动画。我尝试在检查电子邮件是否有效之前应用 removeClass('shake') 但它似乎永远不会触发。
我想出的另一种方法是设置 2000ms 的间隔来检查输入字段是否有抖动类,如果有则将其删除,但这是错误的,因为用户可以在 300ms 之前提交表单间隔结束,导致动画只持续剩余的时间。区间的代码是:
setInterval(function() {
if ($input.hasClass('shake')) {
$input.removeClass('shake');
}
}, 2000);
小提琴可以在http://jsfiddle.net/9Zs9T/1/找到
知道如何让表单在每次提交时都使用无效输入进行抖动吗?谢谢。
【问题讨论】:
-
你能做一个jsfiddle吗?
-
我忘记了
shake动画...发布在这里:jsfiddle.net/9Zs9T/1
标签: javascript jquery animation animate.css