代码之家  ›  专栏  ›  技术社区  ›  Shantanu Gupta

如何使javascript与Ajax UpdatePanel一起工作

  •  0
  • Shantanu Gupta  · 技术社区  · 15 年前

    我正试图在我的表单上添加验证。我在表单域中使用AJAX控件。 当我移除Update panel和AJAX控件时,我的验证开始工作,但是当两者都保持在一起时,我的验证就不工作了。我怎么能让他们一起工作?

    <script type="text/javascript">
    
        function Validate() {
            var QuestionTextArea = document.getElementById("ctl00_ctl00_cphBody_midbox_fvInsert_txtQuestion");
    
            varError = "";
            if (!IsTextBoxEmpty(QuestionTextArea, "\nQuestion Text Area  not be Empty.")) {
                alert(varError);
                document.getElementById("ctl00_ctl00_cphBody_midbox_fvInsert_txtQuestion").focus();
                return false;
            } return true;
        }
    </script>
    
    
    
        <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                <ContentTemplate>
    
                 <asp:TextBox ID="txtQuestion" runat="server" MaxLength="1000" Columns="50" Rows="5" Style="width: 380px;
                 float: none" Text='<%# Bind("Description") %>' TextMode="MultiLine" />
                 <AjaxControl:TextBoxWatermarkExtender runat="server" TargetControlID="txtQuestion"
                  WatermarkCssClass="water" WatermarkText="Type your Question Here.">
                 </AjaxControl:TextBoxWatermarkExtender>
    
    
               </ContentTemplate>
            </asp:UpdatePanel>
    

    当我删除ajax扩展程序和更新面板时。我的文本框在使用UpdatePanel时得到验证。没有调用我创建的javascript函数。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Community Mohan Dere    8 年前

    一个 更新面板完全替换上更新面板的内容 最新情况 .
    这意味着你订阅的那些活动是 订阅时间更长,因为更新面板中有新元素。
    完整答案 here

    在您的页面或母版页中,放置以下脚本

    <script type="text/javascript">
      Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
    
      function EndRequestHandler(sender, args)
      {
        Validate(); 
      }   
    </script>
    
        2
  •  0
  •   BigMomma    14 年前

    ajax扩展的第一个版本的一个众所周知的问题是破坏验证器。ScottGu甚至在博客中提到了在 <system.web><controls><pages> 在web.config中:

    <tagMapping>
       <add tagType="System.Web.UI.WebControls.CompareValidator" 
            mappedTagType="Sample.Web.UI.Compatibility.CompareValidator, Validators, Version=1.0.0.0"/>
       <add tagType="System.Web.UI.WebControls.CustomValidator" 
            mappedTagType="Sample.Web.UI.Compatibility.CustomValidator, Validators, Version=1.0.0.0"/>
       <add tagType="System.Web.UI.WebControls.RangeValidator" 
            mappedTagType="Sample.Web.UI.Compatibility.RangeValidator, Validators, Version=1.0.0.0"/>
       <add tagType="System.Web.UI.WebControls.RegularExpressionValidator" 
            mappedTagType="Sample.Web.UI.Compatibility.RegularExpressionValidator, Validators, Version=1.0.0.0"/>
       <add tagType="System.Web.UI.WebControls.RequiredFieldValidator" 
            mappedTagType="Sample.Web.UI.Compatibility.RequiredFieldValidator, Validators, Version=1.0.0.0"/>
       <add tagType="System.Web.UI.WebControls.ValidationSummary"
            mappedTagType="Sample.Web.UI.Compatibility.ValidationSummary, Validators, Version=1.0.0.0"/>
    </tagMapping>
    
    推荐文章