0

名前、電子メール、番号、メッセージを含む簡単な連絡先フォームがあります。JavaScript を使用して検証し、フィードバックを提供しました。他のすべての機能は完全に機能し、無効な文字や値が含まれている場合は入力ボックスが赤くなります。ただし、すべてのボックスで存在チェックを実行すると、入力の 1 つだけに値が含まれていてもフォームが送信されます。

ここに私のJSがあります...

function submit_it() {


    var name = document.getElementById("username");
    var email = document.getElementById("email");
    var num = document.getElementById("racenum");
    var messagecontent = document.getElementById("messagecontent");

    var inputs = []; 
    inputs[0] = name; 
    inputs[1] = email;
    inputs[2] = num;
    inputs[3] = messagecontent;

    for(i = 0; i < inputs.length; i++)  // Loop through input elements.
    {
        // Perform presence check.
        if(inputs[i].value=="" || messagecontent.value == 'null') //If check fails
        {
            alert("There are errors in your message form."); // Error
            name.focus(); // Return cursor to first input element.
            break; 
            return;
        }
        else  // If Presence check passes
        {
         $.post("sndmsg.php", { com: "" , pg: ""});
            alert("Your message has been sent."); 
            for(i = 0; i < inputs.length; i++) 
            {
                inputs[i].value = '';
                inputs[i].style.backgroundColor = '#fff';
            }
            break; 
            console.log(logit);
            return;

        }
    }

} 

ループまたは If ステートメントの問題だと思いますが、エラーが検出されない理由がわかりません。どんな助けでも大歓迎です!

4

2 に答える 2

0

これを使って:

if (!String.prototype.trim) {
  String.prototype.trim = function () {
    return this.replace(/^\s+|\s+$/g, '');
  };
}

参照: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim

コードでこれを行います:

var val = inputs[i].value;

if(val.trim() == "" || messagecontent.value == 'null'){// stuff}
于 2013-09-11T10:41:38.923 に答える