0
function send() {
    alert("Your message sent.");
}

function wrongNickNameorMessage() {
    var nicknameValue = document.getElementById("input-nickname").value;
    var messageValue = document.getElementById("input-text").value;
    if (nicknameValue != "" && messageValue != "") {
        document.getElementById("af-form").submit();
    } else {
        alert("Nickname or message is blank. Please fill.");
        return false;
    }
}

これらは私のJSコードです

<input type="text" name="nickname" id="input-nickname" required>

<textarea name="message" type="text" id="input-text" required></textarea>

<input type="submit" value="Send" onclick="wrongNickNameorMessage() + send()" />

そして、これらは私の HTML コードです。

[送信] ボタンをクリックしたとき。まず alert("Your message sent.");、それからalert("nickname or message is blank. Please fill.");働いています。または正反対。

wrongNickNameorMessage() が true の場合、send() 関数を無効にしたい。

どうやってやるの?

4

3 に答える 3

1

あなたは正しい考えを持っていますが、それについて非常に常軌を逸しています。これを試して:

function wrongNickNameorMessage() {
    var nicknameValue = document.getElementById("input-nickname").value;
    var messageValue = document.getElementById("input-text").value;
    if (nicknameValue === "" || messageValue === "") {
        alert("Nickname or message is blank or improper input detected. Please fill.");
        return false;
    }
    document.getElementById("af-form").submit();
    alert("Your message sent.");
}

入力を検証しているだけなので、他の関数や if ステートメントの他の部分は必要ありません。もっと創造的になることもできますが、本当に必要なのはそれだけです。問題がある場合、関数は完全に停止しますが、それ以外の場合は、正しいメッセージが表示されて送信されます。

于 2013-11-04T23:22:45.490 に答える
-1

wrongNickNameorMessage() チェック結果を呼び出すラッパー メソッドを呼び出し、true が返された場合にのみ続行する必要があります。

function conditionalSend(){if (wrongNickNameorMessage()){send();}}
于 2013-11-04T23:17:25.883 に答える