0

我正在编写一个程序,该程序允许用户输入电话号码并根据一些条件告诉用​​户它是否被接受/拒绝。我已经计算出了进行计算的函数,但我无法让 JavaScript 与 HTML 文档一起工作:它没有被找到。

这是两个代码:(JS然后HTML):

function testanummer(nummer){
    nummer = document.getElementById("a").value;
    if isNaN(nummer){
        console.log("Hi! This phone number appears faulty, please try again.");
    } else if (nummer.length <=8) && else if (nummer.length >=14) {
        console.log("Thanks! We'll be in touch shortly.");
    } else {
        console.log("Hi! This phone number appears faulty, please try again.");
    }

HTML:

<html>
<head>
    <title> Uppgift nummer 5</title>

    <script src="testanummer.js"></script>
</head> 


<body>
    <form>
        <label for="a">Skriv in ditt telefonnummer här: </label>
        <input type="text" name="nummer" id="a">
        <input type = "button" value ="Testa telefonnummer" onclick="testanummer(nummer);">
    </form>
</body>
</html>

知道为什么它不起作用吗?我收到此错误:

未捕获的 SyntaxError:意外的标识符

和:

未捕获的 ReferenceError:未定义 testanummer

任何想法为什么它不起作用?

非常感谢!

4

2 回答 2

4

代码中有两个语法错误。第一个语法错误在这里:

if isNaN(nummer){

它应该是:

if (isNaN(nummer)) {

第二个语法错误在这一行:

} else if (nummer.length <=8) && else if (nummer.length >=14) {

语法应该是:

} else if (nummer.length <= 8  && nummer.length >= 14) {

但是,似乎您的条件倒退了,我认为这就是您的意思:

} else if (nummer.length >= 8  && nummer.length <= 14) {

调用函数时,您应该从文本框中获取值,而不仅仅是对它的引用。此外,并非所有浏览器都将输入字段放在全局范围内,请使用表单访问该字段:

<input type = "button" value ="Testa telefonnummer" onclick="testanummer(this.form.nummer.value);">

然后你可以跳过nummer函数中变量的赋值。

于 2013-01-10T15:46:59.700 回答
0

两个错误:

} else if ((nummer.length <=8) && else if (nummer.length >=14)) {

将其更改为(即使您的条件是错误的......比 8 短且比 14 长?):

} else if ((nummer.length <=8) && (nummer.length >=14)) {

你在事件处理程序中有一个错误onclick

onclick="testanummer(nummer);"

应该:

onclick="testanummer(this.form.nummer.value);"

或者如果从函数中删除参数(因为你无论如何都在函数中检索它)甚至:

onclick="testanummer();"

所以你最终的 .js 文件应该是:

function testanummer(nummer){
    nummer = document.getElementById("a").value;
    if (isNaN(nummer)) {
        console.log("Hi! This phone number appears faulty, please try again.");
    } else if ((nummer.length <=8) && (nummer.length >=14)) {  //HAVE A LOOK AT THIS CONDITION
        console.log("Thanks! We'll be in touch shortly.");
    } else {
        console.log("Hi! This phone number appears faulty, please try again.");
    }
}
于 2013-01-10T15:47:39.753 回答