1

本当に明白な何かを見逃したに違いないと確信していますが、私の人生ではそれが何であるかを見ることはできません.

私は以下の JavaScript を持っています。(理論的には) 送信をクリックしたときにフォームを見て、「RefNo」フィールドを空白のままにしているかどうかを教えてくれます (最終フォームにはチェックするさまざまなフィールドがあるので、使用しましたそれらすべてを識別するには class='required')。しかし、これまでのところ、送信をクリックしても何も起こりません (フォームが不足しているデータで送信されることを除いて)。

インターネットで見つけたさまざまなオプションを試しましたが、これが最も有望であると思われました。

私が間違ったことを誰かが見ることができれば、本当に感謝しています。

<html>
<head>
    <script language="JavaScript" src="jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        function submitForm()
        {
            $("#Form1").submit(function()
                {
                    $('.required input').each(function() 
                        {
                            if ($(this).val() == '') 
                                {   
                                    $(this).addClass('highlight');
                                }
                        }
                    );

                    if ($('.required input').hasClass('highlight')) 
                        {
                            alert("Please fill in a Ref Number and try again");
                            return false;
                        }
                }   
            );
        }
    </script>
</head>
<body>

    <form method="POST" action="test9.php" name="Form1" ID="Form1">
        <input TYPE="text" ID="RefNo" NAME="RefNo" VALUE="" size="25px" class="required"></input>

        </br>

        <p>
            <input type="submit" Name="submit" id="submitButton" value="Report History" onClick='submitForm()'></input>
        </p>
    </form> 
</body>

4

5 に答える 5

1

まず、Jquery 検証プラグインを使用する必要があると思います。

それ以外の場合、このコードは機能するはずです:

- Form タグに onsubmit="return submitForm()" を追加します

<form method="POST" action="test9.php" name="Form1" ID="Form1" onsubmit="return submitForm();">

-送信ボタンの onclick を取り除く

-そして、submitForm 関数は次のとおりです。

function submitForm() {
var valid = true;

$('input[class="required"]').each(function() {
    if ($(this).val() === '') {   
        alert("One field is empty and try again");
        valid = false;
    }
});

return valid;

}

しかし、私はjquery.validate.jsを本当にお勧めします

于 2013-05-24T16:07:07.960 に答える
0

フォーム送信時に行う代わりに、ボタンから送信入力タイプを削除し、通常のボタンにします。

それを念頭に置いて、あなたのJavaScriptは次のようにする必要があります。

<script>
    $('#submitButton').click(function () {
        $('input.required').each(function() {
            if ($(this).val() == '') {   
                $(this).addClass('highlight');
            }
        });

        if ($('.highlight').length > 0) {
            alert("Please fill in a Ref Number and try again");
            return false;
        }
        else {
            $('#Form1').submit();
        }
    });
</script>

そうしないと、この方法では、欠落しているデータのチェックを実行するまでイベントをキャンセルしてから、フォームを送信する必要があります。古い IE ブラウザーは他のブラウザーや新しいバージョンの IE とは異なる方法で操作を行うため、この方法によりアクションをキャンセルする必要がなくなります。そのため、コードが読みやすくなります。

于 2013-05-24T15:48:56.547 に答える
-1

セレクターは$('input.required')または$('#RefNo')のいずれかである必要があります。

$('#RefNo')は、ネイティブのgetElementByIdメソッドを使用するため、より高速です。

于 2013-05-24T15:47:48.207 に答える