当用户开始输入输入时删除Error类

时间:2014-08-08 14:56:14

标签: jquery html css ajax

我使用ajax调用提交FORM。我想突出显示未通过验证的所有输入,然后在它们开始进入输入字段时立即删除突出显示。我能够添加错误类,但我无法将其删除。我尝试了很多东西,包括在keydown,keypress,keyup,change,focus等上调用事件。

对于我尝试的所有内容,要么没有任何反应,要么在提交后立即触发警报。

这就是我现在所拥有的:

$(document).ready(function() {
$('#config_form_submit').off().click(function(e) {
    e.preventDefault();
    $('#config_form').submit();
});


function removeErrorClass() {
    alert($(this).html());
}

// $("input .error").keyup(removeErrorClass());
//$("input .error").change(removeErrorClass());
//$("input .error").keydown(removeErrorClass());
//$(".error").on(keypress, removeErrorClass());


$('#config_form').off().submit(function(e) {
    e.preventDefault();
    $.ajax({
        type:"POST",
        url: $('#config_form').attr('action'),
        data: $(this).serialize(),
        datatype: 'json',
        success: function(data) {
            $("#config_results").text(data.message);
            if(data.errors.length > 0)
                for(index in data.errors) {
                    $("#id_"+data.errors[index]).addClass("error");
                    $("#id_"+data.errors[index]).bind("input", removeErrorClass());
                }
        },
    });
});
}); //document.ready

1 个答案:

答案 0 :(得分:2)

我用billyonecan的答案解决了这个问题:

$(document).on("keyup", "input.error", function(){
    $(this).removeClass("error");
});