当用户开始输入时,使突出显示的输入字段“不突出显示”

时间:2013-03-06 19:50:31

标签: javascript jquery forms input highlight

我使用javascript创建了一个简单的表单,如果单击“join”按钮并将字段留空,则会突出显示红色字段。

即使填写完成后,在按下“加入”按钮之前,它仍会保持红色。因此,我只想在用户开始输入后取消突出显示,而不是点击。

的jsfiddle: http://jsfiddle.net/LCBradley3k/xqcJS/6/ 使用Javascript:

$(document).ready(function(){


      /*  setTimeout(function(){ 
        $('.inputs').show("slide", { direction: "down" }, 1000);
        }, 2000);
    });*/

    $('#join').click(function(){

        var correct = true;

        $('input[type="text"]').each(function(indx){
            var $currentField = $(this);
            if ($currentField.val() === ''){
                $currentField.addClass('empty');
                correct = false;
            } else{
                $currentField.removeClass('empty');
            }

        });
        if (correct) {
            $('#answer').html('Thank You!');
            setTimeout(function(){
        $('.inputs').hide("slide", { direction: "up" }, 1000);
        }, 2000);
        } else {
        $('#answer').html('Please fill highlighted fields.') ;     
        }



    });

5 个答案:

答案 0 :(得分:0)

在表单输入上添加keyup处理程序以删除该类:

$('input[type="text"]').keyup(function (event) {
    var $currentField = $(this);
    if ($currentField.val() !== '') {
        $currentField.removeClass('empty');
    }
});

<强> DEMO

答案 1 :(得分:0)

当然,只需绑定到keydown。

http://jsfiddle.net/xqcJS/7/

if ($currentField.val() === ''){
    $currentField.addClass('empty');
    correct = false;
    $currentField.one('keydown',function(){
        $currentField.removeClass('empty');
    });

答案 2 :(得分:0)

$('input[type="text"]').keydown(function() {
    if ( $(this).val != "" )
        $(this).removeClass('empty');
});

答案 3 :(得分:0)

您可以使用焦点或使用键盘。

$('input[type="text"]').keyup(function(e){
  $(this).removeClass('empty');
})

如果您想使用焦点,可以将焦点替换为焦点,因为每次键入时都不会触发事件。

答案 4 :(得分:0)

添加以下代码:

$('input[type="text"]').focus(function() {            
   $(this).removeClass('empty');
});

当您专注于字段时,将删除“空”类。