2

どうやら解決方法がわからないという奇妙な問題があります。次のようなボタンがあります。

<asp:Button ID="btnSave" runat="server" ClientIDMode="Static" Text="Save" OnClientClick="return ConfirmSave();" OnClick="btnSave_Click" />

クライアント関数を次のように記述すると、期待どおりに動作します。

function ConfirmSave()
{
  return confirm('Confirm?');
}

しかし、次のように、関数内で確認結果を確認する必要があります。

    function ConfirmSave() 
    {
      if (Page_ClientValidate('validationGroup'))
      {
        var conf = confirm("Confirm?");

        if (conf)
        {
             $('#btnSave').attr('disabled', 'disabled');
        }

        return conf;
      }
      else
        return false;
   }

これを行うと、ページはポストバックされますが、サーバーのクリック イベントは発生しません。

誰でも助けることができますか?ありがとう

4

3 に答える 3

2

コードが完了して送信が行われた直後に、タイムアウトを使用してボタンを無効にします。

if (conf) 
{ 
     setTimeout( function() { $('#btnSave').attr('disabled', 'disabled') }, 0 );
} 
于 2010-08-31T13:35:55.667 に答える
2

はい、ボタンは送信タイプで入力されるため、発火します。

ページに他のエラー、おそらくボタンIDの重複がある可能性があります(静的モードに設定しているため)。

btnSaveを別の場所で再度指定したかどうかを確認するか、JavaScript エラーがないかどうかも確認してください。

(ページがレンダリングされた後、ブラウザーでページのソース コードを表示し、複数回存在する場合は btnSave ID を検索します)

于 2010-08-31T07:49:33.160 に答える
0

コードビハインドにbtnSave_Click()というメソッドがある場合、ポストバックすると、最初にPage_loadメソッドに分類され、次にそのメソッドに分類されます。VBを使用している場合は、その後にメソッドが必要Handles btnSave_Click()になります。

于 2010-08-31T07:46:19.073 に答える