0

以下の送信は、JavaScript の検証をバイパスします。それは onclick でも何かが足りないからですか?

ありがとう

<form name="myprofile" action="do_update" method="post" onsubmit="return validate_submission(this.name)">
   <input type="text" id="text_fullname" name="text_fullname" value="" maxlength="100" />
   <div id="submit_button" onclick="document.myprofile.submit()">SUBMIT</div>
</form>

JS

function validate_submission(formname)
{
    alert(formname); return false;
}
4

2 に答える 2

2

イベントを発生させずにフォームを送信するために使用onclickしているものほど多くはありません。form_ref.submit()submit

オプション:

  • submit()実際の送信ボタンを使用します ( JS で呼び出さないでください)。これが最良の選択肢です。スクリーン リーダー フォーム モードで表示されます。タブで移動できます。JSがオンになっていない場合に機能します。
  • を呼び出す前に、検証関数を呼び出して結果を確認してくださいsubmit()
于 2012-12-04T11:44:18.863 に答える
0

追加の送信スクリプトを追加し、それをdivから呼び出します...

<script>
    function validate_submission(formname)
    {
        var is_valid = false;

        if (formname == 'myprofile')
        {
            is_valid = true;
        }

        perform_submit(formname, is_valid);
    }

    function perform_submit(formname, is_valid)
    {
        if (is_valid === true)
        {
            document.myprofile.submit()
        }
        else
        {
            alert('Invalid');
        }
    }
</script>
<form name="myprofile" action="do_update" method="post" onsubmit="return validate_submission(this.name)">
   <input type="text" id="text_fullname" name="text_fullname" value="" maxlength="100" />
   <div id="submit_button" onclick="validate_submission('myprofile')">SUBMIT</div>
</form>
</body>
于 2012-12-04T11:49:37.670 に答える