HTMLフォームとJavascriptの確認
-
20-09-2019 - |
質問
私は、フォームとJavascriptの確認を提出するとの問題を抱えています。 「送信」ボタンを押したときます。
基本的には、次のJavaScriptが呼び出されますfunction confirmation() {
var answer = confirm("Are you sure you wish to edit?")
if (answer)
{
window.location = "#editform2";
}
}
私は、キャンセルの代わりに、[OK]を打ったとき、私はアドレスバーを見て、それが#editform2に更新されませんので、しかし、Javascriptが正しく実行されます。フォームは、しかし、まだ提出しています。ページを更新しているようです。ここでは、フォームからの関連する部分があります:
//Form is encoded in PHP
<form method=\"post\">
//Form is in here
<input type=\"submit\" value=\"Edit\" onclick=\"confirmation()\">
フォームは、それが起こっている場所がわからないようには、それだけでページを更新し、ページは、同様のプロセッサをあることを起こります。だから、処理は、私がキャンセルをクリックしてJavascriptが同じページ上でそれを維持する必要があるにもかかわらずです。別のページに移動処理以外にも、私の解決策は何ですか?
解決
それはsumbitボタンだとフォームがすべての場合には提出されているため、
これは、このように動作します。フォームにIDを割り当て、入力の種類を変更します。
<form method="post" id="formid">
<input type="button" value="Edit" onclick="confirmation()">
とクリックしたときに、この関数を呼び出します:
function confirmation() {
var answer = confirm("Are you sure you wish to edit?")
if (answer)
{
document.getElementById("formid").submit();
}
}
他のヒント
、送信ボタンのonclickイベントを使用して、フォームのをonSubmitイベントを使用しないでください。
document.forms[0].onsubmit = function () {
return confirm("Are you sure you wish to edit?");
}
あなたはそれを識別するために、フォームにid属性を追加することもできます。
JavaScriptコードに結合事象を維持します。ないあなたのHTMLのインライン属性に、あなたのコードがよりmaintanableとデバッグが容易になります。
試してください:
return answer;
関数の最後にとonclickの方法がこれを返すことを確認してください。これと同様ます:
<input type="submit" value="Edit" onclick="return confirmation()">
この関数はfalseを返すようにして掲載されていない形式になります。
所属していません StackOverflow