我正在尝试阻止可编辑列表项的空白输入,我使用的是我在其他地方使用的相同代码,但由于某种原因它无效。
我有:
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>
答案 0 :(得分:3)
您也可以使用.trim()
函数,然后检查字符串的长度。
if(folderName == "" || folderName.trim().length === 0){
$(this).remove();
}
注意:trim()
函数会从字符串的两端删除空格。
答案 1 :(得分:1)
检查空格如下:
folderName.indexOf(' ') >= 0
所以你的支票应该是这样的:
if(folderName == "" || (folderName.indexOf(' ') >= 0)){
$(this).remove();
}