クリックすると検索フィルターを適用するボタンがある検索画面があります。
ユーザーがボタンをクリックすると、そのテキスト(キャプション)が[送信]から[データの取得]に変更され、色が黒から緑に変更されます。これは、以下に示すようにボタン属性を追加することにより、コードビハインドで処理されました。
btnSubmit.Attributes.Add("onClick", "this.value='Retrieving
Data...';this.style.color='green';");
このボタンをクリックすると、コードビハインドの検証がほとんど行われず、エラーメッセージがラベルに表示されました。
これで、これらの検証をjavascriptに移動し(ボタンをクリックするとjavascript関数を呼び出す)、すべての検証に合格したかどうかに応じてtrueまたはfalseを返します。
以下はhtmlコードです:
asp:Button ID="btnSubmit" TabIndex="110" runat="server" Width="160px"
Font-Names="Tahoma" EnableViewState="False" Text="Submit"
Font-Bold="True" OnClick="btnSubmit_Click"
OnClientClick="return Validation();"
以下は私のjavascript関数です
function Validations()
{
if($('#<%=txtEmpName.ClientID%>').val() == "" && $('#<%=txtEmpDescription.ClientID%>').val() == "" )
{
if($('#<%=ddlDept.ClientID%>').val() == "0" || $('#<%=ddlManager.ClientID%>').val() == "0" )
{
alert('Please select something');
return false;
}
}
return (true);
}
これらの検証を追加した後、ボタンのテキストとテキストの色は変更されません。レンダリングされたHTMLコードをチェックすると、最初にValidation()関数が呼び出され、次に属性が追加されます。trueまたはfalseを返した後、属性は呼び出されたり適用されたりしないと思います。
回避策はありますか?