0

フォームにいくつか問題があります(検証)。データが指定されていない場合、エラーは発生しません。この問題を解決するにはどうすればよいですか? これは私のコードのほんの一部です。文字、数字、電子メールの種類については、完全に機能します。ご協力ありがとうございました。

function onFormSubmit(form_element){
    var checked = 0;
    if (form_element.gender[0].checked == false && form_element.gender[1].checked == false){
        alert("Please choose your Gender:Male of Female");
        return false;
    }

    if (form_element.make.selectedIndex == 0){
        alert("Please select your rating interval.");
        form_element.make.focus();
        return false;
    }

    if (form_element.click.checked == false){
        alert("Please confirm your registration!");
        false;
    }

    return true;
}

html

<form class="contact_form" action="" method="post" name="contact_form" onsubmit="return onFormSubmit(this)">
    <ul>
        <li>
            <h2>Sign-Up Form</h2>
        </li>
        <li>
            <label for="Male">Male:</label>
            <input type="radio" name="gender" value="m" /> &nbsp; Female:<input type="radio" name="gender" value="f" />
            <br />
        </li>
        <li>
            <label for="National Rating">National Rating:</label>
            <select name="make">
                  <option selected>-- SELECT --</option>
                  <option> Below 1200 </option>
                  <option> 1200 - 1500 </option>
                  <option> 1500 - 1800 </option>
                  <option> 1800 - 2100 </option>
                  <option> Above 2100 </option>
            </select><br />
        </li>
        <li>
            <input type="checkbox" name="click" value="regist"> I confirm my registration.
            <br />
        </li>
        <li>
            <button class="submit" type="submit">Submit</button>
        </li>
    </ul>
</form>
<div id="error_message" style="color:#ff0000;"></div>
4

3 に答える 3

1

In this test:

> if (form_element.click.checked == false){
>           alert("Please confirm your registration!");
>           false; 

you left out a return.

于 2012-04-23T06:49:11.803 に答える
0

あなたの関数名から、onSubmit 中に呼び出すと思いますか? ほとんどのブラウザーは、onSubmit 中にアラートを表示しません。最初に検証を行ってからデータを送信することをお勧めします。

于 2012-04-23T06:36:34.250 に答える
0

onclickイベントにアタッチするだけで機能します:

<form class="contact_form" action="" method="post" name="contact_form" onclick="onFormSubmit">
于 2012-04-23T06:53:31.443 に答える