C# Javascript在UpdatePanel附近不起作用

C# Javascript在UpdatePanel附近不起作用,c#,javascript,asp.net,button,updatepanel,C#,Javascript,Asp.net,Button,Updatepanel,我有一个UpdatePanel: <asp:TextBox ID="date" runat="server" /> <asp:ScriptManager ID="Manager" runat="server" /> <asp:UpdatePanel ID="setDate" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">

我有一个
UpdatePanel

<asp:TextBox ID="date" runat="server" />

<asp:ScriptManager ID="Manager" runat="server" />
            <asp:UpdatePanel ID="setDate" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
                <ContentTemplate>
                       <asp:Label ID="checkRes" runat="server" />&nbsp;<asp:Label ID="range" runat="server" />

                        <asp:ImageButton ID="check" runat="server" ImageUrl="../img/process.png" OnClick="check_Click" CausesValidation="false" UseSubmitBehavior="false"/>

                        <asp:Button ID="submit" runat="server" Text="Submit" CausesValidation="true" Enabled="false" />

                    <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="setDate">
                        <ProgressTemplate>

                            <asp:Image ID="loader" runat="server" ImageUrl="~/img/loader.gif" />
                        </ProgressTemplate>
                    </asp:UpdateProgress>
                </ContentTemplate>

                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="check" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>
<script type="text/javascript">
    var textBox = document.getElementById('<% =date.ClientID %>');
    var submitButton = document.getElementById('<% =submit.ClientID %>');
        textBox.onchange = function () {
            submitButton.disabled = true;
        };
</script>

您可以看到,第一个
按钮
被禁用,在
更新面板
触发后,它将被启用;现在我希望如果
date
的文本更改
按钮
变为禁用。我测试了我的JS,但它没有在ASPX中禁用
按钮

回发后,清除控件的绑定。这就是原因

试试这个

<asp:TextBox ID="date" runat="server" />
    <asp:ScriptManager ID="Manager" runat="server" />
    <script type="text/javascript">
        function pageLoaded()
        {
            var textBox = document.getElementById( '<% =date.ClientID %>' );
            var submitButton = document.getElementById( '<% =submit.ClientID %>' );
            textBox.onchange = function ()
            {
                submitButton.disabled = true;
            };
        }


        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_pageLoaded( pageLoaded );
    </script>
    <asp:UpdatePanel ID="setDate" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
        <ContentTemplate>
            &nbsp;<asp:Label ID="checkRes" runat="server" />&nbsp;<asp:Label ID="range" runat="server" /><br />
            <asp:ImageButton ID="check" runat="server" ImageUrl="http://static.adzerk.net/Advertisers/d18eea9d28f3490b8dcbfa9e38f8336e.jpg"
                OnClick="check_Click" CausesValidation="false" UseSubmitBehavior="false" />
            <br />
            <asp:Button ID="submit" runat="server" Text="Submit" CausesValidation="true" Enabled="false" />

            <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="setDate">
                <ProgressTemplate>
                    <asp:Image ID="loader" runat="server" ImageUrl="~/img/loader.gif" />
                </ProgressTemplate>
            </asp:UpdateProgress>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="check" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>

函数pageLoaded()
{
var textBox=document.getElementById(“”);
var submitButton=document.getElementById(“”);
textBox.onchange=函数()
{
submitButton.disabled=真;
};
}
var prm=Sys.WebForms.PageRequestManager.getInstance();
prm.添加页面加载(页面加载);


您可以对其进行更改,但脚本块必须放在scriptmanager之后。

可能的副本
<asp:TextBox ID="date" runat="server" />
    <asp:ScriptManager ID="Manager" runat="server" />
    <script type="text/javascript">
        function pageLoaded()
        {
            var textBox = document.getElementById( '<% =date.ClientID %>' );
            var submitButton = document.getElementById( '<% =submit.ClientID %>' );
            textBox.onchange = function ()
            {
                submitButton.disabled = true;
            };
        }


        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_pageLoaded( pageLoaded );
    </script>
    <asp:UpdatePanel ID="setDate" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
        <ContentTemplate>
            &nbsp;<asp:Label ID="checkRes" runat="server" />&nbsp;<asp:Label ID="range" runat="server" /><br />
            <asp:ImageButton ID="check" runat="server" ImageUrl="http://static.adzerk.net/Advertisers/d18eea9d28f3490b8dcbfa9e38f8336e.jpg"
                OnClick="check_Click" CausesValidation="false" UseSubmitBehavior="false" />
            <br />
            <asp:Button ID="submit" runat="server" Text="Submit" CausesValidation="true" Enabled="false" />

            <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="setDate">
                <ProgressTemplate>
                    <asp:Image ID="loader" runat="server" ImageUrl="~/img/loader.gif" />
                </ProgressTemplate>
            </asp:UpdateProgress>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="check" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>