0

如果您单击“加入”按钮并将字段留空,我使用 javascript 制作了一个简单的表单,该表单会突出显示红色字段。

即使在你填满它之后,直到按下“加入”按钮,它也会继续保持红色。因此,我只想在用户开始输入后取消突出显示,而不是单击。

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.') ;     
        }



    });
4

5 回答 5

0

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

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

演示

于 2013-03-06T19:54:12.650 回答
0

当然,只需绑定到 keydown。

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

if ($currentField.val() === ''){
    $currentField.addClass('empty');
    correct = false;
    $currentField.one('keydown',function(){
        $currentField.removeClass('empty');
    });
于 2013-03-06T19:54:31.997 回答
0
$('input[type="text"]').keydown(function() {
    if ( $(this).val != "" )
        $(this).removeClass('empty');
});
于 2013-03-06T19:55:22.347 回答
0

您可以使用焦点或使用 keyup。

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

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

于 2013-03-06T19:58:52.130 回答
0

添加以下代码:

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

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

于 2013-03-06T20:23:25.493 回答