0

インラインイベントリスナーとは、イベントを登録するためのdomノードプロパティではなく、onsubmit/onreset属性のようなイベント登録のためのHTML要素属性を意味します。

フォームのonsubmit/onreset属性にfalseを返すイベントハンドラーを登録すると、送信/リセットによって送信/リセットプロセスが実行されるためです。

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>New Web Project</title>

        <script type="text/javascript">
            function f()
            {
               return false;
            }

        </script>

    </head>
    <body>
        <form action="" id = "form" onsubmit = "f()" onreset = "f()">
             <input type="text">
             <input type = "submit" value = "submit">
             <input type = "reset" value = "reset">
        </form>
    </body>
</html>
4

1 に答える 1

2

HTML属性を介してイベントハンドラーを指定すると、指定した文字列によって、イベントが発生したときにブラウザーによって呼び出される関数が作成されます。

したがって、この例では、onsubmit属性とonreset属性により、次と同等の2つの関数が作成されます。

function() {
  f();
}

その無名関数はfalseを返さないため、送信イベントとリセットイベントはブロックされません。それがあなたがしたいことであるならば、あなたは次のいずれかをすることができます。

デフォルトの処理を常にブロックするには:

onsubmit="f(); return false;" onreset="f(); return false;"

デフォルトの処理(およびもう少し優れたコードスタイル、IMO)を条件付きでブロックするには:

onsubmit="return f();" onreset="return f();"
于 2012-07-10T12:45:21.683 に答える