【问题标题】:Causing javascript events after validation验证后引发javascript事件
【发布时间】:2012-05-21 13:20:51
【问题描述】:

我正在尝试添加一个 javascript“请稍候”微调器,因此我的最终用户知道在发生长时间加载事件时正在发生某些事情。我们正在使用 ASP.NET。但是有一个问题,我们在页面上使用了很多Peter Blum's validators。就目前而言,我在继续按钮上使用了一个点击事件,如下所示:

var btnContinue = $("input[name*='btnContinue']");
        $(btnContinue).click(function() 
        {
            # show the spinner
        }

如果验证失败,这会导致问题,因为会弹出验证错误但微调器不会消失。我真的没有看到单个 OnAllValidation() 事件或我可以轻松挂钩以获得我真正想要的行为的东西(当我们知道一切正常时开始旋转)。这种事件顺序是有问题的,因为某些验证发生在回发之后,这意味着我无法在 Javascript 中检查这些条件。至少,如果没有我可以参与的事件。

有人有什么想法吗?

【问题讨论】:

  • @eric.itzhak 请原谅我,但我真的不明白这将如何解决问题,因为 Continue.Click 事件发生在任何验证发生之前。你能再进去一点吗?
  • 哦,在问题中没有明白,那么您可以在验证结束后显示微调器,而不是在 OnClick 事件中。
  • @eric.itzhak 是的,验证结束后是我试图定位的地方,但我很难让它做到这一点。我们正在使用商业验证器,所以事情有点“黑匣子”,并与我们的 ASP.NET 页面的整体流程联系在一起。

标签: javascript asp.net validation


【解决方案1】:

我在 Blum 先生的验证用户指南中找到了我想要的内容。具体来说:

function DES_ValidateGroup(pGroup)

这将使用 DES 客户端框架在当前页面上的指定验证组上运行客户端验证。有了这样的输入,我可以简单地将其放入 IF 语句中。

在我的情况下,我需要验证整个页面,所以我只是将 pGroup 留空,使调用看起来像这样:

DES_ValidateGroup('')

用户指南列举了这完全是犹太教。

【讨论】:

    【解决方案2】:

    你可以:

    • 使微调器出现在验证函数中
    • 在 onclick 事件中调用验证函数

    这可能会解决您的问题。

    如果您对此不满意,请查看This 答案,其中解释了使用 jQuery 的when() 方法执行此操作的方法,不确定是否相关但请查看。

    【讨论】:

    • 我可能应该更明确一点,但我指定 Peter Blum 的验证器的原因是因为所有验证都发生在回发之后,并且当我要滚动时在Javascript中显示微调器我对此没有任何可见性。除非我弄错了如何连接这些控件?我将开始尝试您的解决方案,此时我当然没有任何损失!
    猜你喜欢
    • 2016-09-30
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    相关资源
    最近更新 更多