在asp.net和javascript中进行回发和验证

时间:2011-09-02 09:31:25

标签: javascript asp.net validation postback

我有这么多

HTML

<asp:Button ID="btnSaveContest" runat="server" Text="Save &amp; Publish Contest" OnClientClick=" ValidateCreateContest();" ValidationGroup="ContestAdd" OnClick="btnSaveContest_Click" CausesValidation="false"/>

的JavaScript

<script type="text/javascript">
    function ValidateCreateContest() {
        Page_ClientValidate();
        if (Page_IsValid) {
            alert('page is valid');
            $('#<%=btnSaveContest.ClientID%>').attr('disabled', 'disabled');
            __doPostBack('<%=btnSaveContest.ClientID%>', '')
            return true;
        }
        else {
            alert('not valid');      
            return false;
        }     

    }
</script>

它会回发到页面,但它不会转到服务器端功能 btnSaveContest_Click 。为什么?

1 个答案:

答案 0 :(得分:4)

请勿使用ClientID,请使用UniqueID

    if (Page_IsValid) {
        alert('page is valid');
        $('#<%=btnSaveContest.ClientID%>').attr('disabled', 'disabled');
        __doPostBack('<%= btnSaveContest.UniqueID %>', '')
        return true;
    }
    else {
        alert('not valid');      
        return false;
    }     

question可能有用。