1

エラーを出力し、フォームに空のフィールドがあるフォームの送信を防ぐスクリプトを JavaScript で作成するにはどうすればよいですか? フォーム名を「form」、入力名を「name」とします。PHP が空のフィールドを常に正しく処理するとは限らないという問題が発生しているので、これをバックアップとして使用したいと思います。どんな助けでも大歓迎です、ありがとう。

4

4 に答える 4

3

HTML コード :-

<form name='form'>
<input type="button" onclick="runMyFunction()" value="Submit form">
</form>

Javascript コード :-

  function runMyFunction()
    {
        if (document.getElementsByName("name")[0].value == "")
        {
            alert("Please enter value");
        }
        else
        {
            var form= document.getElementsByName("form")[0];
            form.submit();        
        }
    }
于 2013-08-07T08:53:17.950 に答える
1

クラウディオの答えは素晴らしいです。これはプレーンな js オプションです。フィールドが空の場合は何もせず、そうでない場合は送信するだけです。

複数の検証が必要な場合&&は、if ステートメントに演算子を追加し、同じ構文を追加します。OtherFieldName

function checkForm(form1)
{
    if (form1.elements['FieldName'].value == "")
    {
        alert("You didn't fill out FieldName - please do so before submitting");
        return false;
    }
    else
    {
        form1.submit();
        return false;
    }
}
于 2013-08-07T00:58:52.317 に答える
1

これはテストされていないコードですが、私の方法を示しています。

「フォーム」のテキスト フィールドに空の値がないかチェックし、存在する場合は送信アクションをキャンセルします。

もちろん、セキュリティ上の理由から、PHP で空のフィールドをチェックする必要がありますが、これにより、サーバーに空のフィールドを照会するオーバーヘッドが削減されます。

window.onload = function (event) {
    var form = document.getElementsByName('form')[0];
    form.addEventListener('submit', function (event) {
        var inputs = form.getElementsByTagName('input'), input, i;
        for (i = 0; i < inputs.length; i += 1) {
            input = inputs[i];
            if (input.type === 'text' && input.value.trim() === '') {
                event.preventDefault();
                alert('You have empty fields remaining.');
                return false;
            }
        }
    }, false);
};
于 2013-08-07T01:08:25.087 に答える
0

submit イベントにイベント ハンドラーをアタッチし、値が設定されているかどうかを確認します ( DEMO )。

var form = document.getElementById('test');

if (!form.addEventListener) {
    form.attachEvent("onsubmit", checkForm); //IE8 and below
}
else {
    form.addEventListener("submit", checkForm, false);
}

function checkForm(e) { 
    if(form.elements['name'].value == "") {
        e.preventDefault();
        alert("Invalid name!");   
    }
}
于 2013-08-07T01:13:18.003 に答える