var tagAllowed = true;
var allowedTags =["Person","People","Dance","Word"];
if(tagAllowed === true) {
for(var i=0;i<allowedTags.length;i++){
var aTags = allowedTags[i];
if(input.val().toLowerCase() === aTags.toLowerCase()) {
tagged.append('<span unselectable="on" class="tagged '+colorize+'" title="Click To Delete">'+inputVal.trim()+'</span>');
tagSize = $('.tagged').length;
var ele = $('.tagged').last(),
subtract = parseInt(ele.outerWidth(true),10);
input.width(input.width() - subtract);
tagged.width(tagged.width() + subtract);
input.css('marginLeft','5px');
input.val("");
input.css('color','#000');
} else {
errorMess.children('span').remove();
errorMess.prepend('<span>'+errorProcess+'<span>');
errorMess.slideDown();
}
}
以下代码在某种程度上起作用,如果input.val()不匹配,它将显示自定义警报errorMess
,即使单词匹配,它仍会显示自定义警报。我想知道我是否在我的条件中做错了。因为如果单词匹配,我不需要显示自定义提醒。
如有任何建议请发帖。我知道这不仅仅是代码的最好例子,但我希望你们所有人都能得到我想说的话。如果两个单词匹配在一起,我就不希望出现自定义提醒。
答案 0 :(得分:1)
你在for循环中有if语句。输入值永远不会超过阵列中的一个标签。您可以使用for循环来设置布尔值。然后if语句可以跟在for循环中。
boolean isAllowedTag = false;
for(var i=0;i<allowedTags.length;i++){
var aTags = allowedTags[i];
if(input.val().toLowerCase() === aTags.toLowerCase()) {
isAllowedTag = true;
break;
}
}
if (isAllowedTag) {
// ...
} else {
errorMess.children('span').remove();
errorMess.prepend('<span>'+errorProcess+'<span>');
errorMess.slideDown();
}
}
答案 1 :(得分:0)
在break;
行之后添加input.css('color, '#000');
。另外,您应该将最后3行更改为:input.val("").css({marginLeft:'5px', color:'#000'});
。拨打.css()的速度很慢,所以最好在一次通话中尽可能多地做。