0

ボタンの問題に直面しています。

クライアント側の検証を行いたい (たとえば、データリストで最大 4 つのチェックボックスのみを選択する)。

INPUT TYPE="BUTTON" RUNAT="SERVER" スタイルのタグを使用しました。正常に動作する Onserverclick="someservermethod" を配置します。

Validate() を作成し、onclick="return validate();" を追加しました。上記の HTML マークアップに追加し、それが false を返す場合、私のサーバー側コード someservermethod() は実行されず、期待どおりにうまく機能すると考えていました

しかし、私がtrueを返すと、someservermethod()が起動すると思っていましたが、機能していません。なぜ機能しないのかについて何か考えはありますか?

以下のボタンの HTML マークアップ

button onclick="return ValidateSelection();" type="button" id="btnSubmit"
                runat="server" onserverclick="btnSubmit_Click"

JavaScript コード

function ValidateSelection()
{
  if(good)
  {
    // I expect that my server side code btn_Submit would have got called. But
    // it doesn't get called.
    return true;
  }
  else
  {
    //This works great. Not calling the server side method for the button
    alert('something happened');
    return false;
  }  
}

私はフォーマットを台無しにしていると思います。すみません。

4

1 に答える 1

4

onclick現在使用しているコントロールは、ポストバックに必要なクライアント側コードを上書きするため、実行しようとしていることに「適合」しない HtmlButton です。

必要なのは、クライアント側の上書きをサポートしonclick、通常どおりポスト バックを実行する Button コントロールです。

マークアップを次のように変更すると、動作するはずです。

<asp:button OnClientClick="return ValidateSelection();" id="btnSubmit" runat="server" OnClick="btnSubmit_Click" Text="Submit"></asp:Button>
于 2012-08-14T07:43:06.150 に答える