我有一个字段可以根据用户类型触发一些弹出窗口:
第一个弹出窗口是当用户输入一个数字时,此时用户会获得一个弹出窗口,其中包含该字段允许非数字输入的消息
当用户输入小写字母但可以继续输入字母
时会触发第二个弹出窗口当用户达到10个字符
时会触发第三个弹出窗口到目前为止,我有这段代码:
<input type="text" data-placement="bottom" data-trigger="manual" data-content="" name="momlastname" id="momlastname" ng-model="momlastname" />
(function () {
function firstCapital(word) {
return /^[A-Z]/.test(word);
};
function NumberOnly(e) {
var inp = String.fromCharCode(e.which);
if (/[0-9]/.test(inp)) return true;
else return false;
};
$('#momlastname').keypress(function (f) {
switch ($(this).val().length) {
case 1:
message = "Lower letter";
break;
case 10:
message = "10 characters have been reached";
break;
}
if (NumberOnly(f)) {
f.preventDefault();
$('#momlastname').popover({
trigger: 'manual',
content: function () {
return "Enter text only. Numbers cannot be entered.";
}
});
$('#momlastname').popover('show');
$('#momlastname').addClass('error');
} else if ($(this).val().length == 1 && !firstCapital($(this).val())) {
$('#momlastname').popover({
trigger: 'manual',
content: function () {
return message;
}
});
$('#momlastname').popover('show');
$('#momlastname').addClass('error');
} else if ($(this).val().length == 70) {
$('#momlastname').popover({
trigger: 'manual',
content: function () {
return message;
}
});
$('#momlastname').popover('show');
$('#momlastname').addClass('error');
} else {
$('#momlastname').popover('hide');
$('#momlastname').removeClass('error');
}
});
});
现在,弹出窗口没有工作,但当我评论其他人时,它似乎工作但我需要让所有3个工作。我做错了什么?
答案 0 :(得分:0)
您正在使用else if
,因此只会执行第一个条件。尝试取出else
并将错误清算移至支票上方。