【问题标题】:jquery generated from custom control not working after postback从自定义控件生成的 jquery 在回发后不起作用
【发布时间】:2013-01-11 19:49:50
【问题描述】:

我正在创建一个自定义控件来为控件生成 jQuery 验证脚本,这些控件的验证规则取决于配置,因此经常更改。其中一项要求是,由于大量的回发和潜在的低带宽网络,必须在客户端进行验证。下面给出了我的自定义控件的输出示例。我遇到的常见问题是 jquery 在回发后停止工作,并且我尝试使用 PageLoad、Sys.Application.... 等,但这仍然是一个问题。我是 jQuery 的新手(一般是 JS),想知道当可能只有一个时生成大量 PageLoad 声明是否是问题所在?由于每个控件的动态验证规则,我无法对任何脚本进行硬编码。

        output.WriteLine("<script type='text/javascript'>" +
                        "$(document).ready(" +

                        "function () {" +
                        "  $('#" + ControlToValidate + "').mouseenter(function () {" +
                        "      $('#validate_msg_" + ControlToValidate + "').text('some error');" + 
                        "  });" +

                        "});" +
                        "</script>");

        output.WriteLine("<div id='validate_msg_" + ControlToValidate + "' style='color:Red'></div");  

非常感谢您提供的任何帮助!

【问题讨论】:

  • 它是 .net 应用程序吗?
  • 是的,我给出的代码在 ASP.NET 自定义控件中,该控件采用另一个控件(如 CustomValidator)的参数并生成 jQuery 脚本以根据某些验证规则输出到页面
  • 如果我使用 PageLoad 只有页面中的最后一个实例才能工作

标签: jquery controls postback generated


【解决方案1】:

添加到以下两个映射解决问题,第一个在初始加载后调用,第二个在每次 AJAX 调用后调用。

$(document).ready(validatefunction); Sys.WebForms.PageRequestManager.getInstance().add_endRequest(validateFunction);

【讨论】:

    【解决方案2】:

    您需要使用&lt;asp:scriptmanager&gt; 并在每次页面加载时以编程方式加载脚本文件(将您的 jscript 放入文件中)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      相关资源
      最近更新 更多