2015-11-06 86 views
2

我是一个总Js noob,我试图做一个简单的脚本,从两个输入标签中取值,并根据它们的值更改一个p标签。我可能只是没有使用正确的语法,但我不能在网上找到答案如何做到这一点。简单的年龄验证在javascript

该脚本应该是像r级电影的年龄验证。第一个输入是年龄,第二个是客户是否有成年人,如果他们不是未成年人。

<pre> 
<!DOCTYPE html> 
<html> 
    <input type="text" id="age" value="your age"> 
    <input type="text" id="adult" value="(y or n)"> 
    <input type="button" onclick="checkAge()" value="submit"> 
<p id="answer"></p> 
<script> 
var age = document.getElementById("age").innerHTML; 
var adult = document.getElementById("adult").innerHTML; 
var result = document.getElementById("answer").innerHTML; 
var oldEnough = false; 
function checkAge(){ 
    if(age.value >= 18){ 
     oldEnough = true; 
    } 
    else{ 
     oldEnough = false; 
    } 
    if(oldEnough == false){ 
     if(adult.value == "y"){ 
      result = "You are not old enough, but have an adult with you."; 
     } 
     else{ 
      result = "You are not old enough and are unaccompanied." 
     } 
    } 
    else{ 
     result = "You are old enough." 
    } 
} 
</script> 
</html> 
</pre> 
+0

提醒:Java的Java脚本=如果 – Barmar

+0

你需要把额外的说明,将其修改成问题,不评论。 – Barmar

+0

您想从输入中获取值,而不是innerHTML。所以'document.getElementById(“age”)。innerHTML'应该是'document.getElementById(“age”).value'(对其他人来说是一样的)。你也想在你的函数中设置这些变量。 – j08691

回答

2
  1. 别叫输入元素.innerHTML。只需将变量设置为指向元素即可。

  2. 分配结果时,您需要在分配时使用result.innerHTML。将.innerHTML分配给变量只是将元素的当前内容作为字符串复制,它不会使resultinnerHTML属性的引用成为可能。

  3. 由于.value是一个字符串,因此您应该致电parseIntage

function checkAge() { 
 
    var age = document.getElementById("age"); 
 
    var adult = document.getElementById("adult"); 
 
    var oldEnough = false; 
 
    var result = document.getElementById("answer") 
 
    if (parseInt(age.value, 10) >= 18) { 
 
    oldEnough = true; 
 
    } else { 
 
    oldEnough = false; 
 
    } 
 
    if (oldEnough == false) { 
 
    if (adult.value == "y") { 
 
     result.innerHTML = "You are not old enough, but have an adult with you."; 
 
    } else { 
 
     result.innerHTML = "You are not old enough and are unaccompanied." 
 
    } 
 
    } else { 
 
    result.innerHTML = "You are old enough." 
 
    } 
 
}
<input type="text" id="age" placeholder="your age"> 
 
<input type="text" id="adult" placeholder="(y or n)"> 
 
<input type="button" onclick="checkAge()" value="submit"> 
 
<p id="answer"></p>

0

输入元件可以是当它们被放在一个形式更容易访问,并且该逻辑可以更简单。另外,请确保您使用适当的元素和属性,例如不要使用值作为一种占位符,它应该是一个合适的默认值(如果有的话)。

而不要使用占位符而不是标签,它们只能用作所需内容的提示,它们不会替换标签。

function checkAge(button) { 
 
    var form = button.form; 
 
    var result = document.getElementById("answer"); 
 

 
    result.innerHTML = form.age.value >= 18? 'You are old enough.' : 
 
        form.adult.checked? 'You are not old enough, but have an adult with you.' : 
 
        'You are not old enough and are unaccompanied.'; 
 
}
<form> 
 
    <label>Age: <input type="text" name="age"></label> 
 
    <label>Adult: <input type="checkbox" name="adult"></label> 
 
    <input type="button" onclick="checkAge(this)" value="Check age"> 
 
    <p id="answer"></p> 
 
</form>