0

私は、ユーザーが電話番号を入力し、いくつかの条件に基づいてそれが承認/拒否されたかどうかをユーザーに通知できるプログラムをコーディングしています。計算を行う関数を作成しましたが、JavaScriptをHTMLドキュメントで動作させることができません。見つからないのです。

2つのコードは次のとおりです。(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>

なぜそれが機能しないのか考えてみてください。このエラーが発生します:

Uncaught SyntaxError:予期しない識別子

と:

Uncaught ReferenceError:testanummerが定義されていません

それが機能しない理由はありますか?

どうもありがとう!

4

2 に答える 2

4

コードには 2 つの構文エラーがあります。最初の構文エラーは次のとおりです。

if isNaN(nummer){

そのはず:

if (isNaN(nummer)) {

2 番目の構文エラーは次の行にあります。

} 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

2 つのエラー:

} 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 に答える