2016-10-13 9 views
-1

native POST(非ajax)を使用する送信イベントがあります。ajaxを使用せずに送信を確認するメッセージを表示する

<form method="post"> 
<button type="submit" value="submit"></button> 
</form> 

ユーザーが[送信]ボタンをクリックしたときにどのように表示することができますか?ユーザーが確認をクリックした場合、それだけが継続されます。私はajaxでこれを行うことができますが、native postでも可能ですか?

答えて

1

あなたは(jQueryのを使用)、フォームのsubmitイベントにconfirm()を追加し、次のように無名関数にその値を返すことができます。

$('form').on('submit', function() { 
    return confirm('Are you sure?'); 
}); 

+0

インラインでもいいですか?それは単なる1行だからです。 –

+1

あなたはインラインですが、それは非常に悪い習慣です。 (私がもう一度答えたところでのコメントを見てください)。 – BenM

+0

なぜ悪い練習ですか?私の登録ページのために私はjsファイルを持っていません。 1行の確認メッセージを表示するだけです。 –

0

だけ

それを行います
<form onsubmit="return confirm('Are you sure?')" /> 
+1

侵入型イベントハンドラの推奨を避けてください。 – BenM

+0

@BenM私はこれがより真っ直ぐであることを発見しました。 –

+0

@MariaJane https://www.w3.org/wiki/The_principles_of_unobtrusive_JavaScript – BenM

0

これはお勧めの方法ではありませんが、あなたが望むことはできますが

<form method="post" onsubmit="return confirm('Do you really want to submit');"> 
    <button type="submit" value="submit">Submit</button> 
</form> 
0

function submitForm() { 
 
var r = confirm("Do you want to submit the form?"); 
 
if (r == true) { 
 
    document.getElementById("mainForm").submit(); 
 
} else { 
 
    return false; 
 
} 
 
}
<html> 
 
<body> 
 
<form id="mainForm" method="post" onsubmit="submitForm()"> 
 
    Enter name: <input type="text" name="fname"> 
 
    <input type="submit" value="Submit"> 
 
</form> 
 
</body> 
 
</html>

+0

侵入型イベントハンドラは推奨しません。また、 'if()else'ブロックの必要はありません。' confirm() '関数を' return'するだけです。 – BenM

+0

それは、確認ダイアログからの応答を得る可能性があることを示すために、ほとんどの場合、送信またはキャンセル時に何かする必要があります。 – mbadeveloper

0

はい、それは可能です。

<form id="f" action="demo_form.asp" onsubmit="return false"> 
    Enter name: <input type="text" name="fname"> 
    <input type="submit" onclick="t()" value="Submit"> 
</form> 

<script> 
function t() { 
    if(confirm("Yo")){ 
     var form = document.getElementById("f") 

     form.submit() 

    } 
} 
</script> 
関連する問題