<input type="submit" class="sub" onClick="exefunction2()" id="button">
送信ボタンをクリックしても機能しonClick
ません。どうすればこれを修正できますか? onClick
イベントには値が含まれているため、フォームの送信時にこれを行う必要があります。
<input type="submit" class="sub" onClick="exefunction2()" id="button">
送信ボタンをクリックしても機能しonClick
ません。どうすればこれを修正できますか? onClick
イベントには値が含まれているため、フォームの送信時にこれを行う必要があります。
最良の方法は、次のようにフォーム タグでメソッドを呼び出すことです。
<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>
W3 学校の説明はこちら: http://www.w3schools.com/js/js_validation.asp
基本的に、送信は何もする前に onClick からの戻り値を待ちます。必要に応じて、confirm() リクエストを接続することもできます。フォームが検証されたら、次のように記述します return confirm("continue")
。これは古い質問ですが、つまずいた人の助けになることを願っています。失敗のもう 1 つの大きな理由は、スクリプトのバグです。残念ながら、ブラウザーでデバッガーを実行していない限り、何かがスクリプトをクラッシュさせているかどうかを知ることは非常に困難です。ブラウザー デバッガーを有効にすると、問題を追跡するのに役立ちます。Chrome では、Windows では CTRL-SHIFT-I、Mac では CMD-OPTION-I を使用できます。キャッチされたエラーで一時停止すると、スクリプトを途中で停止させている構文または致命的なエラーを見つけることができます。
Javascriptでフォームを送信できます。
<form id="form_id" ...>
<input type="button" class="sub" onclick="exefunction2();" id="button">
Javascript:
function exefunction2() {
...
document.forms["form_id"].submit();
}
試してみてください<form onSubmit="exefunction2()">
。
それが「公式の」予想される動作であるかどうかはわかりませんが、それがどのように機能するかです。onclick Javascript 関数を追加すると、送信タイプのボタンは送信されなくなります。関数にフォームも送信させるか、関数にfalseを返すようにするだけです
イベントを onsubmit に変更し、フォームが送信されないように false を返します。
<input type="submit" class="sub" onsubmit="exefunction2();return false;" id="button">