3

テキストボックスを作成していますが、要件が満たされない場合、背景は黄色に変わりますが、背景を 3 秒間黄色のままにしたいのですが、どうすればよいですか?

これは私が現時点で持っているものですが、黄色の背景はそのままです...

$("#form").on("submit",function(){


user = $("#username").val().length;
userErrorBg = $('#username').css('background','yellow');


if(user < 3 || user > 6)
{

    setInterval("userErrorBg",0);

}

})

どこかに clearInterval を配置することを考えていますが、時間カウントが必要ですか?

4

4 に答える 4

3

指定された特定の期間の後に機能を繰り返すのではsetTimeout(function(){},time)なく、特定の期間に一度だけ機能すると思われる場合に使用することをお勧めします。setInterval(function(){}, time)

これを試して:

$("#form").on("submit", function () {
    user = $("#username").val().length;
    if (user < 3 || user > 6) {
       $('#username').css('background', 'yellow'); //<---need to put it here
       setTimeout(function () {
           $('#username').css('background', 'white').focus(); //<--add focus too
       }, 3000);
       return false;
    } 
}); 

デモフィドルをチェックアウト

この POST が役に立ちます

于 2013-03-28T05:50:43.887 に答える
2

setInterval( )の代わりにsetTimout()を使用してみてください。setTimeout は一度起動され、それ自体を繰り返さないため、 for のように間隔をクリアする必要はありません。setInterval

setTimout(function(){
    $('#username').css('background','white');
},3000);
于 2013-03-28T05:21:19.997 に答える
0

これを試して..

$("#form").on("submit",function(){


user = $("#username").val().length; 


if(user < 3 || user > 6)
{

    setTimeout(function(){
        $('#username').css('background','yellow');
    },0);

    setTimeout(function(){
        $('#username').css('background','white');
    },3000);
}

});
于 2013-03-28T05:51:34.857 に答える
0
$("#form").on("submit",function(){

これを試して-

user = $("#username").val().length;
userErrorBg = $('#username').css('background','yellow').delay(3000).css('background','white');


if(user < 3 || user > 6)
{

    setInterval("userErrorBg",0);

}

})
于 2013-03-28T05:25:19.117 に答える