代码之家  ›  专栏  ›  技术社区  ›  Ed James

服务器端验证完成后运行javascript函数

  •  0
  • Ed James  · 技术社区  · 16 年前

    好的,我在一个更新面板中有一个带有小窗体(2个字段)的lightbox,当按下“保存”按钮时,我想关闭这个lightbox(必须通过javascript完成)。

    但是,需要在页面上有一个服务器端的customvalidator,我只想关闭lightbox,如果它返回有效状态。

    有人知道从服务器端验证程序触发javascript(或jquery)代码的方法吗?

    2 回复  |  直到 16 年前
        1
  •  2
  •   womp    16 年前

    您可以使用 ScriptManager 在响应返回到 UpdatePanel .

    if (Page.IsValid){
    
       ScriptManager.RegisterStartupScript(
                customValidator1, 
                typeof(MyPageClass), 
                "closeBox",
                "myLightBoxVariableOnThePage.close()",
                true);
    }
    
        2
  •  0
  •   Joel Coehoorn    16 年前

    当服务器端验证程序运行时,它将发送一个 整个新页面 到浏览器。以前在浏览器中显示的任何内容 摧毁 包括您的javascript中保存的任何状态。如果新页面与旧页面有很强的相似性,您应该认为这是一个愉快的巧合。

    因此,这里要做的不是执行一个javascript函数,而是让您的customvalidator在成功时对页面进行正确的更改,以便它首先正确地呈现给浏览器。