延迟和淡入平滑复位形式功能

时间:2013-11-13 10:42:59

标签: javascript jquery ajax forms

我刚发现联系表单中所有字段的重置功能。我希望这个功能在几秒钟之后应用并且平滑淡入。

这是我重置的代码,因此用户可以再次发送电子邮件:

$( 'form' ).each(function(){
    this.reset();
});

我想也许这样的事情可能吗?也许我需要添加一个fadeOut函数插入的实际内容?但我现在不是jQuery专家:

var formReset = $( 'form' ).each(function(){this.reset();});

formReset().delay('2000').fadeIn('500');

2 个答案:

答案 0 :(得分:2)

尝试在fadeIn / fadeOut的回调中使用重置。

以下片段将淡出所有带有text和textareas类型的输入。在此之后,清除值并且元素在淡入淡出:

function reset(){
    $('#myFormular').children('input:text, textarea').each(function(){
        $(this).fadeOut('slow', function(){
            $(this).val('');
            $(this).fadeIn('slow');
        });
    });
}


$('#resetButton').click(reset);

示例:http://jsfiddle.net/WsDe2/2/

另一种解决方案是将字体颜色设置为输入元素的背景颜色。然后清除值,并在此更改后更改为原生颜色:

function reset(){
    $('#myFormular').children('input:text, textarea').each(function(){
        var baseColor = $(this).css('color');

        $(this).animate({color : $(this).css('background-color')}, function(){
            $(this).val('');
            $(this).css('color', baseColor);
        });
    });
}


$('#resetButton').click(reset);

示例:http://jsfiddle.net/WsDe2/4/

答案 1 :(得分:1)

   this.reset();
   setTimeout(function(){                          
         $('#correct').fadeOut(500);
   },2000); 

使用setTimeout