2011-12-21 10 views
3

asp.net 3.5ページでは、ユーザーがフォームを進行するときにTextChangedイベントで非同期ポストバックを発生させる複数のテキストボックスがあります。ユーザーがフォームを完了すると、「Submit」ボタンが押されて、javascriptの「確認」ダイアログを含むフォームが送信されます。ユーザーがすべてのフィールドをオフにしている限り、すべて正常に動作します。ユーザーは、テキストボックスのいずれかの値を変更し、ボタンをクリックした場合しかし、W /テキストボックス、「onClientClick」火災を出Oが、「確認」は、次の特定があるかどうページがポストバックされていません。しかしJavascript 'confirm()'ポストバックをキャンセルする

onClientClick = return confirm('Are you sure you want to submit?'); //Page Does Not Post 

ページ上で確認を削除すると、ポストバックを行います。

onClientClick = return true; //Page Posts 

ボタンが<asp:PostBackTrigger/>です。テキストボックスの<asp:AsyncPostBackTrigger/>は、ボタンと同じ更新パネルにあります。私は同じ結果で別のアップデートパネルに移動しようとしました。

また、これは、ユーザーがテキストボックスを変更し、ボタンをクリックする前にタブオフしていない場合にのみ発生します。ボックスからタブを外しても問題ありません。私も(確定する前に5秒を待つことを除いて)、その後の確認を表示するフォームが、同じ結果を提出する前に5秒を待つようにコードを入れている:

var dt = new Date(); 
dt.setTime(dt.getTime() + 5000); 
while (new Date().getTime() < dt.getTime()); 
return confirm('Are you sure you want to submit?'); 

任意のアイデアやまともな回避策?

ありがとうございます!

+0

あなたはどこにブレーキポイントを入れましたか? Page_LoadまたはTextChangedにありますか? –

+0

confirm()の結果に関係なく、Clickでポストバックを行いますか? –

+0

@ARS私は彼がYESでのみポストバックを望んでいると思う..または '確認'はうまく動作しません –

答えて

0

は更新onClientClick = ";リターン結果、VAR結果= DummyFunction()" のコード

function DummyFunction() 
{ 
var dt = new Date(); 
dt.setTime(dt.getTime() + 5000); 
while (new Date().getTime() < dt.getTime()); 
return confirm('Are you sure you want to submit?'); 
} 

を試してみてください

+0

ありがとうございますが、同じ結果が表示されますが、どこに私が確認を入れても、ボタンをキャンセルする必要はありません。テキストボックス。 – BFK

1

回避方法が考えられました。ここ

function ConfirmSubmit(){ 
    if (confirm('Are you sure you want to submit?')){ 
     __doPostBack(btnSend, ''); 
    } 
    return false; 
} 

ボタンです:ここでは

<asp:Button id='btnSend' runat='server' onClientClick='return ConfirmSubmit();' /> 
+0

私は年齢の間この問題を抱えていました。私は手動のポストバックをしたくないので、私はこの考えに反していましたが、私の状況ではこれを修正しました。 varへのt。その後、そのvarに基づいてものをやっている。しかし、それは決してサーバーに戻ることはありません。私が何を試しても。 __doPostBackを追加するとそれが解決されました。それが私の本の勝利です。 – Sam

3

も、機能を記述することなく、あなたの問題を解決するための良い方法です。

<asp:Button runat="server" ID="btnSubmit" Text="Submit" OnClick="BtnSubmit_Click" 
    OnClientClick="if (!confirm('Are you sure you want to Submit?')) return false;"/> 
関連する問題