好的,我有这个观点
<input type="input" class="form-control mortgage-refinance-only" id="mortgage-cash-out-tenure" placeholder="">
<span class=" cash-out-tenure-error hidden" style="color:red; font-size: 10px">Value can be 'NA' or greater than 1</span>
我有这个javascript函数
$('#mortgage-cash-out-tenure').change(function(){
var cashOutTenure = $('#mortgage-cash-out-tenure').val();
if(cashOutTenure != 'NA' || cashOutTenure < 1){
$('.cash-out-tenure-error').removeClass("hidden");
else {
$('.cash-out-tenure-error').addClass("hidden");
}
});
好吧,基本上,如果输入标签的值不是'NA'或者它小于1,它应该使得跨度可见,并显示错误消息,否则它不会显示错误消息。
但它似乎没有正常工作。如果它不等于'NA',则错误被正确编码,但如果该值是数字,则仍然显示错误消息。
代码有什么问题? 任何帮助都非常感谢。
由于
答案 0 :(得分:3)
代码中存在语法错误。此外,您的if
声明与您的文字说明不符。
根据您所需的功能,if
语句应为:
if (cashOutTenure == 'NA' || cashOutTenure >= 1) {
$('.cash-out-tenure-error').addClass('hidden');
} else {
$('.cash-out-tenure-error').removeClass('hidden');
}
当你否定OR或AND表达式中的子句时,你需要注意比较运算符以及将OR更改为AND(反之亦然)。
您的原始代码:if(cashOutTenure != 'NA' || cashOutTenure < 1)
只要true
的值不是cashOutTenure
,就会传播到'NA'
,其中包含所有数值。
另一件事:您的错误消息与您对所需效果的描述不符。此错误消息:
值可以是'NA'或大于1
...表示不允许使用1
的值。但是您的描述表明小于1 的任何内容都是错误的。在编写代码(或错误消息) ...