首页 > 解决方案 > 使用jquery blur时如何防止空输入字段被认为是错误的

问题描述

我正在制作一个函数来评估您是否插入了正确的答案。但是,如果您输入了错误的单词,然后转到另一个输入字段,它将评估您插入的单词,如果输入错误,它将变为红色。现在问题来了:当这个词变成红色时,你很可能转到另一个输入字段,这是因为它具有blurjquery的功能。如果您单击前一个输入字段来纠正您的错误,它会将您刚刚单击以填写的空输入字段也视为错误输入字段(因为再次模糊)。我知道我必须创建一些东西来评估输入字段是否为空,如果是:不评估,如果是,评估。从我尝试做的事情来看,它没有用。这就是我现在所拥有的:

            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语句还评估一个空的输入字段。

标签: javascriptjquery

解决方案


这应该做欺骗。

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

推荐阅读