2012-04-02 12 views
0

私はこのjavascriptを使用してユーザーに警告します。この機能を私のPHPフォーム処理ページにpostメソッドを使ってデータを送信するHTMLフォームに追加します。確認ボックスのクリックでphpフォームアクションを終了

ユーザーがキャンセルボタンを押すと、アクションを終了することができます。これは、postメソッドを使用して送信されたすべてのデータが送信されるべきではなく、ユーザーがフォームを処理することができないことを意味します。彼/彼女がOKボタンをクリックしない限り。それは可能ですか?それともちょっとばかな質問ですか?

<html> 
<head> 
<script type="text/javascript"> 
function show_confirm() 
{ 
var r=confirm("Press a button!"); 
if (r==true) 
    { 
    alert("You pressed OK!"); 
    } 
else 
    { 
    alert("You pressed Cancel!"); 
    } 
} 
</script> 
</head> 
<body> 

<input type="button" onclick="show_confirm()" value="Show a confirm box" /> 

</body> 
</html> 

答えて

1

ないボタンのクリックの上、提出し、送信ボタンにボタンを変更し、フォーム上のconfirmを呼び出します。

<form onsubmit="return show_confirm();"> 
    <input type="text" name="test" value="test"><br> 
    <input type="submit" value="Show a confirm box"> 
</form> 

cancelがクリックされた場合return false;を追加します。

また
function show_confirm() { 
    var r=confirm("Press a button!"); 
    if (r===true) { 
     alert("You pressed OK!"); 
    } else { 
     alert("You pressed Cancel!"); 
     return false; 
    } 
} 

参照my example

1

まず、あなただけのRの部分であなたのAJAX呼び出しを置くべき===真 ユーザーがキャンセルにクリックされた場合、あなたは、サーバーにデータを送信しません。

第2に、ユーザーが既に行ったアクション(= ajax呼び出し)を終了したい場合(つまり、「OK」ボタンをクリックし、サーバーにデータをポストするためにajaxを呼び出した場合) 'ロールバック'を行うサーバー側のコードが必要になるため、難しくなります。サーバーに到達する前にデータを「キャッチ」できないので、ここではロールバックを実行してクライアントからステータスを確認できるようにすることができます。

+0

もう少し私は理解しました。これは、真の部分に入れるのに良い選択です... –

関連する問題