防止空白输入无效

时间:2016-06-10 22:06:16

标签: javascript jquery

我正在尝试阻止可编辑列表项的空白输入,我使用的是我在其他地方使用的相同代码,但由于某种原因它无效。

我有:

if(folderName == "" || folderName == " " || folderName.charAt(0) == " "){
        $(this).remove();
    }

如果我没有输入任何内容,它会删除该项目,但如果我输入空格,则不会调用该删除。

奇怪的是我在不同的区域使用这个完全相同的代码并且它工作正常。

这是完整的功能:

$(document).on('focusout', '#folders li', function(){ //add class when lose focus/shorten name if too long
    var folderName = $(this).text();
    $('#folders li').removeAttr('contenteditable');
    $('#folders li').removeClass('active-tab');
    $(this).addClass('active-tab');
    if(folderName.length > 15){
        $(this).attr('title', $(this).text());
        shortFolderName=folderName.substring(0,15) + '...';
        $(this).text(shortFolderName);
    }
    else if(folderName.length <= 15){
        $(this).text(folderName);
        $(this).attr('title', $(this).text());
    }
    if(folderName == "" || folderName == " " || folderName.charAt(0) == " "){
        $(this).remove();
    }
    console.log(folderName);
})

HTML:

<div id="tabs">
    <ul id="folders">
        <li class="active-tab" >All Notes</li>
        <li>Work</li>
        <li>Personal</li>
        <li id="add" class="glyphicon glyphicon-plus"></li>
    <ul>
</div>

2 个答案:

答案 0 :(得分:3)

您也可以使用.trim()函数,然后检查字符串的长度。

if(folderName == "" || folderName.trim().length === 0){
    $(this).remove();
}

注意:trim()函数会从字符串的两端删除空格。

MDN

答案 1 :(得分:1)

检查空格如下:

folderName.indexOf(' ') >= 0

所以你的支票应该是这样的:

if(folderName == "" || (folderName.indexOf(' ') >= 0)){
    $(this).remove();
}