0

クリックすると検索フィルターを適用するボタンがある検索画面があります。

ユーザーがボタンをクリックすると、そのテキスト(キャプション)が[送信]から[データの取得]に変更され、色が黒から緑に変更されます。これは、以下に示すようにボタン属性を追加することにより、コードビハインドで処理されました。

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を返した後、属性は呼び出されたり適用されたりしないと思います。

回避策はありますか?

4

1 に答える 1

1

Validationsメソッドを次のように変更します。

function Validations()   
{   
    if($('#<%=txtEmpName.ClientID%>').val() == "" && $('#<%=txtEmpDescription.ClientID%>').val() == "" )    
    {   
        if($('#<%=ddlDept.ClientID%>').val() == "0" || $('#<%=ddlManager.ClientID%>').val() == "0" )    
        {   
            alert('Please select something');   
            return false;   
        }    
    }

    //Change text and color.
    $('#<%= btnSubmit.ClientID %>').val('Retrieving data...').css('color', 'green');

    return (true);   
}

また、このビットはもう必要ありません。

btnSubmit.Attributes.Add("onClick", "this.value='Retrieving Data...';this.style.color='green';");
于 2012-10-12T07:16:31.597 に答える