【问题标题】:How to validate form without refreshing the page?如何在不刷新页面的情况下验证表单?
【发布时间】:2017-04-03 12:55:45
【问题描述】:

我的站点管理员有一个登录按钮。如果单击该按钮,登录表单将通过以下 jQuery 代码从屏幕左侧“弹出”:

$(document).ready(function () {
$("#logpad").click(function () {
    $('.menu').animate({
        left: '100%'
    }, 600);
});

所以基本上登录窗口始终存在于主页中,但在单击登录按钮之前隐藏,并且 jquery 通过将其动画向左 100%(全宽)强制它退出。

请原谅我的混淆名称,但在这种情况下,logpad 代表登录按钮,类“菜单”代表透明登录窗口,如下所示:

问题是,每当提供不正确的电子邮件/密码(在我的数据库中找不到凭据)时,页面都会刷新,您必须再次单击登录按钮才能看到相同的窗口,但带有额外的标签“您输入错误电子邮件或密码”,来自此 c# 代码(验证功能的一部分):

 if (i > 0)
                {
                    Turists turist = TuristsFacade.TuristsGetByEmailAndPassword(email, password);
                    if (turist.ID != -1)
                    {
                        Session["TuristName"] = turist.Name + " " + turist.SurName;
                        Response.Redirect("~/EN/index.aspx");
                    }
                    else
                    {
                        lblMessage.Text = "Your email or password is incorrect.";
                        lblMessage.ForeColor = Color.Red;
                        msg.Visible = true;
                    }
                    ds.Clear();
                }

如何在不需要刷新页面的情况下验证表单(换句话说,是否可以直接验证,或者另一种选择是让透明窗口保持不变,以防提供不正确的凭据)。

【问题讨论】:

  • 您可以为此在 jquery 中使用 ajax 并设置登录按钮类型 = 按钮和您的方法返回类型 json 返回。

标签: c# jquery asp.net


【解决方案1】:

您可以使用类似于 ajax 调用但采用 C# 样式的 UpdatePanel。 Details

通过使用它,您可以更新一个标签,让我们留下来,在其中显示一条适当的消息,而无需刷新页面

【讨论】:

  • 澄清一下,这不是“C# 风格”,而是 WebForms 的系统。请考虑更新您的答案以更准确。此外,请考虑添加一个小示例来演示如何正确使用更新面板。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 1970-01-01
  • 2015-07-31
  • 2021-12-22
相关资源
最近更新 更多