2015-11-29 38 views
-3

的JavaScript为什么不是如果陈述工作?

function AdultNumber(){    /* Ticket Number Validation */ 
    var AdInput = $("#adult").val(); 

    if (AdInput > 0){ 
     document.getElementById("AdTickError").textContent = ""; 
     return true; 

    } else if(AdInput > 20) { 
     confirm("You sure you want 20+ Passengers?"); 
     return true; 
    } else { 
     document.getElementById("AdTickError").textContent = "Incorrect Enter Correct Number Of Passengers"; 
     return false; 
    } 
} 

HTML:

<label for="Adult-ticket" class="center-label">Adults(+16)</label> 
    <input type="number" id="adult" name="user_adult"> 
<label id = "AdTickError"></label> 

为何不如果用户输入超过20显示确认框?我希望如果用户选择20或以上确认框会提示用户是否要继续。

+2

的一个问题是,它总是会碰到的第一个if语句,因为任何大于20是也大于0.所以它不会进入else if语句。 – lintmouse

+1

我知道这听起来很疯狂,但它可能是其他文字生物的作品吗? – Rooster

+0

你有没有调用过函数AdultNumber? – bhspencer

回答

6

你可能想改变这种状况:

if (AdInput > 0)

这样:

if (AdInput > 0 && AdInput <= 20){

1

从DOM元素检索到的值始终视为字符串。你需要说:

var AdInput = parseFloat($("#adult").val()); 

,或者根据您的需求,您可能想使用parseInt()代替parseFloat()得到一个整数一个浮点数。

+2

没有“需要”来做到这一点。无论如何,关系比较运算符('>')将隐式地将该值转换为数字。 –

+1

如果不是这样,比较运算符会将该数字视为一个字符串,并会比较它们的长度。 – Y2H

+1

Y2H是正确的。菲利克斯金你必须是JS的新手。 –