为什么我的警报不会在我的某个功能中起作用?

时间:2016-12-22 15:28:16

标签: javascript html css

我希望nameVerification()函数在用户点击alert()时抛出submit消息。例如,如果用户在45字段中输入name之类的内容,我希望调用alert函数中的nameVerification()。现在,当用户输入name字段中的数字时,正在调用alert()函数中的formSubmission()

旁注: formSubmission功能完美无缺。换句话说,如果用户输入一个数字<在age字段中,函数alert()被正常调用,没有任何问题。如果用户输入数字> 13,它的工作原理也没有问题。我以为我会让你们知道的。

signUp.html

<!DOCTYPE html>
<html>
<head>
    <title>Signup Form</title>
    <script type="text/javascript" src="signUp.js"></script>
</head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet"  href="signUp.css">
<body>

<form class="col-md-4 col-md-offset-4" name="formHandler" id="handle">
        <div class="moveUsername">
            <label for="usr">Name:</label>
            <input type="field" class="form-control" id="nameVerify" placeholder="Username" required="required">    
        </div>

        <div class="ageMovement">
            <label for="usr" >Age (Must be 13 years or older to play):</label>
            <input type="field" class="form-control" id="ageVerify" name="ageChecker" placeholder="Age" required="required">
        </div>

        <button type="submit" class="btn btn-default" onclick="formSubmission()" onclick="nameVerification()">Submit</button>
    </form>

</body>
</html>

signUp.js

  function nameVerification() {
    var name = document.getElementById("nameVerify").value;

    if(typeof name !== 'string') {
        alert("That's not a name!");
    }   
}

function formSubmission() {
    var age = document.getElementById("ageVerify").value;

    if(age < 13) {
        alert("You're too young, you can't play the game");
    }   
}

6 个答案:

答案 0 :(得分:3)

age在此函数中也是string

function formSubmission() {
    var age = document.getElementById("ageVerify").value;

    if(age < 13) {
        alert("You're too young, you can't play the game");
    }   
}

如果要进行数字比较,则需要先解析:

function formSubmission() {
    var age = document.getElementById("ageVerify").value;

    if (age) {
       var ageInteger = parseInt(age, 10);

       if (ageInteger < 13) {
           alert("You're too young, you can't play the game");
       }
    } 
}

答案 1 :(得分:3)

按钮上有两个onclick属性

SELECT 'A'||lpad(s::text,5,'0') as myval FROM generate_series(8,12) as t(s)

你只能有一个

答案 2 :(得分:1)

您的typeof测试失败,因为从文本输入返回的值始终是string类型。您可以使用以下函数测试提供的文本值是否为数字:

function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

然而,真正的答案是,您需要改进输入验证测试以确定您想要的内容,而不是测试您 don&#39的所有内容;想要。例如,如果某人输入了&#34; t @ ^!&#34;那么,如上所述测试数值是行不通的。在该字段中,这可能不是您在名称字段中想要的值。这是regular expressions的位置,built-in validations from HTML 5个字段可以提供帮助。

答案 3 :(得分:0)

这是因为尚未加载javascript。

移动:

[RoutePrefix("api/nestedSet")] //<<======
public class NestedSetController : ApiController
{
    [Route("myaction01")] //<<======
    [HttpGet]
    public async Task<int> Myaction01_differentName()
    {
       //the call will be: http://mydomain/api/nestedSet/myaction01
       //code here...
       return 0;
    }


    [Route("myaction02")] //<<======
    [HttpGet]
    public async Task<int> Myaction02_differentName()
    {
       //the call will be: http://mydomain/api/nestedSet/myaction02
       //code here...
       return 0;
    }
}

位于<script type="text/javascript" src="signUp.js"></script> 标记的正上方。

答案 4 :(得分:0)

你应该使用parseInt:

CREATE TABLE test (col NUMBER(0,0))

答案 5 :(得分:0)

您可以按如下方式更改nameVerification功能:

function nameVerification(){         var name = document.getElementById(&#34; nameVerify&#34;)。value;

    if (name) {
        var num = parseInt(name) || -1;
        if (num >= 0 && num < 13) {
            alert("That's not a name!");
        }
    }
}

并将html中的onclick值更改为:

的onclick =&#34; formSubmission(); nameVerification()&#34;