使用jquery blur时如何防止空输入字段被认为是错误的

时间:2018-07-09 13:59:32

标签: javascript jquery

我正在制作一个函数,该函数应该评估您是否插入了正确的答案。但是,如果输入错误的单词,然后转到另一个输入字段,它将评估您插入的单词,如果输入错误,它将变为红色。现在出现了问题:当单词变成红色时,您很可能会转到另一个输入字段,这是因为它具有jquery的blur功能。如果您单击上一个输入字段来更正错误,则会将您刚刚单击以填写的空输入字段也填写为错误的输入字段(因为再次出现模糊)。我知道我必须创建一些东西来评估输入字段是否为空(如果是):不评估,如果是,则评估。从我尝试过的方法来看是行不通的。这就是我现在所拥有的:

            var sylInput = $('<input/>', {
            'type': 'text',
            'class': 'form-control syl-input',
            'name':  +c++,
            'id': +idsyll++
        }).on('blur', function() {
            var cValue = $(this).val();
            if (cValue === syllable) {
              correctSylls.push(cValue);
              console.log(correctSylls);
            }
            if (exercise.syllables.length === correctSylls.length) {
                $(this).closest('.syll-row').find('input.syl-input').addClass('btn btn-success').removeClass('form-control').prop('disabled', true);
                S.addRight();
                S.playRight();
            } else if (cValue !== syllable){
                $(this).css({'color':'#e00413'});
                S.playWrong();
                S.addWrong();
         }

如何制作这样的if语句,应该放在哪里? else if语句也会计算一个空的输入字段。

1 个答案:

答案 0 :(得分:0)

这应该是骗人的。

.on('blur', function() {
    var cValue = $(this).val();
    if(cValue === "") {
        return;
    }
    //rest of your code.
});