Javascript 在服务器上闪烁表单的输入错误

Javascript 在服务器上闪烁表单的输入错误,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我在服务器上发布了一个表单,如果服务器响应任何错误,我会缓慢地闪烁表单的输入(提交和文本区域) 我试着做这样的事情: JS: CSS: .闪烁类{border:1px solid 35; ee1b1b!重要;} 但它只是从表单中删除输入,而不是闪烁。 基本上,我只想在输入周围闪烁红色边框,但方式很好 有什么方法可以做到这一点吗?您需要 $('button').click(function () { var $els = $(':input', '#myForm').not(':butto

我在服务器上发布了一个表单,如果服务器响应任何错误,我会缓慢地闪烁表单的输入(提交和文本区域)

我试着做这样的事情:

JS:

CSS:

.闪烁类{border:1px solid 35; ee1b1b!重要;}

但它只是从表单中删除输入,而不是闪烁。 基本上,我只想在输入周围闪烁红色边框,但方式很好

有什么方法可以做到这一点吗?

您需要

$('button').click(function () {
    var $els = $(':input', '#myForm').not(':button, :submit, :reset, :hidden');
    $els.fadeOut(550).promise().done(function () {
        $els.toggleClass("blink-class").fadeIn(550);
    });
})
演示:

为什么??
:hidden
选择器将使您的选择器忽略其显示被
淡出设置为
none
的元素。另外,
fadeOut
处理程序执行多次(选择器选择的每个输入元素执行一次)

解决方案是缓存存在的元素,然后将它们放在一个内存中。处理程序-这是因为当所有元素都淡出时,我们需要一次显示所有输入元素

var t = null;

function blink() {
    var obj = $('input[type="text"]')
    obj.addClass("blink-class");
    t = setTimeout(function () {
        obj.removeClass("blink-class");
        t = setTimeout(function () {
            blink();
        }, 550);
    }, 550);
}

您可以使用函数

$(':input','#myForm').not(':button, :submit, :reset, :hidden').animate({borderColor: "#FF0000"}, 250)
    .animate({borderColor: "#FFFFFF"}, 250)
    .animate({borderColor: "#FF0000"}, 250)
    .animate({borderColor: "#000000"}, 250);

您只想闪烁边框而不隐藏内容吗?这就是你的意思吗?@Split Your Infinity yes Exactly在演示元素降级然后出现时,是否可以执行相同的操作,但元素不会消失?我的意思是,单击按钮,输入应闪烁红色边框(边框慢慢变红,而不是红色慢慢降级)但在您的示例中,输入是贬损的,如果您向输入添加值,您将更清楚地看到它。我只想在不隐藏内容的情况下闪烁边框。呵呵,太好了,但是如何添加
css
类而不是只添加
border
?@sreginogemoh尝试一下,但要使这两个示例都起作用,您需要使用jQuery ui。在使用
animate
函数时,无法添加类?因为它没有设置动画,所以看起来是有线的。
$(':input','#myForm').not(':button, :submit, :reset, :hidden').animate({borderColor: "#FF0000"}, 250)
    .animate({borderColor: "#FFFFFF"}, 250)
    .animate({borderColor: "#FF0000"}, 250)
    .animate({borderColor: "#000000"}, 250);