2
<input type="submit" class="sub" onClick="exefunction2()" id="button">

送信ボタンをクリックしても機能しonClickません。どうすればこれを修正できますか? onClickイベントには値が含まれているため、フォームの送信時にこれを行う必要があります。

4

7 に答える 7

12

最良の方法は、次のようにフォーム タグでメソッドを呼び出すことです。

<form onsubmit="return exefunction2();">
...
</form>

返品falseはフォームを提出しません、true提出します!

より多くのデータ(exefunction2で構築された)を投稿するには、これを使用できます

<script type="text/javascript">
    function exefunction2(form) {
        //add dynamic values
        var dynValues = {
            "val1": 1,
            "val2": "bla"
        };

        for(var name in dynValues) {
            //check if field exists
            var input = null;
            if(document.getElementsByName(name).length === 0) {
                input = document.createElement('input');
                input.setAttribute('name', name);
                input.setAttribute('type', 'hidden');
                form.appendChild(input);
            }
            else {
                input = document.getElementsByName(name)[0];
            }

            input.setAttribute('value', dynValues[name]);
        }
        return true;
    }
</script>

<form onsubmit="return exefunction2(this);">
    <input type="submit" />
</form>
于 2012-12-12T12:09:59.480 に答える
2

W3 学校の説明はこちら: http://www.w3schools.com/js/js_validation.asp

基本的に、送信は何もする前に onClick からの戻り値を待ちます。必要に応じて、confirm() リクエストを接続することもできます。フォームが検証されたら、次のように記述します return confirm("continue")。これは古い質問ですが、つまずいた人の助けになることを願っています。失敗のもう 1 つの大きな理由は、スクリプトのバグです。残念ながら、ブラウザーでデバッガーを実行していない限り、何かがスクリプトをクラッシュさせているかどうかを知ることは非常に困難です。ブラウザー デバッガーを有効にすると、問題を追跡するのに役立ちます。Chrome では、Windows では CTRL-SHIFT-I、Mac では CMD-OPTION-I を使用できます。キャッチされたエラーで一時停止すると、スクリプトを途中で停止させている構文または致命的なエラーを見つけることができます。

于 2016-05-12T07:04:22.837 に答える
1

Javascriptでフォームを送信できます。

<form id="form_id" ...>
<input type="button" class="sub" onclick="exefunction2();" id="button">

Javascript:

function exefunction2() {
    ...
    document.forms["form_id"].submit();
}
于 2012-12-12T12:12:08.377 に答える
0

試してみてください<form onSubmit="exefunction2()">

于 2012-12-12T12:14:29.610 に答える
0

それが「公式の」予想される動作であるかどうかはわかりませんが、それがどのように機能するかです。onclick Javascript 関数を追加すると、送信タイプのボタンは送信されなくなります。関数にフォームも送信させるか、関数にfalseを返すようにするだけです

于 2012-12-12T12:11:39.697 に答える
-1

イベントを onsubmit に変更し、フォームが送信されないように false を返します。

<input type="submit" class="sub" onsubmit="exefunction2();return false;" id="button">
于 2012-12-12T12:11:34.773 に答える