【问题标题】:Password reset – have a pop-up that confirms when a password is reset密码重置 - 有一个弹出窗口确认密码何时重置
【发布时间】:2013-05-22 08:02:29
【问题描述】:

我被指派做这个任务。我的页面包含两个文本框(用于新密码和确认)和一个保存数据的按钮。在按钮单击事件中,我首先验证两个文本框是否为空、不匹配或输入的值不符合规则。用户在两个文本框中输入正确的密码并点击保存后,此时会弹出“确认密码更改”信息。只有单击“确定”后,数据才会保存到数据库中。当用户点击取消时,数据不保存,返回false。

我在这里写我的代码:

protected void btnChangePassword_Click(object sender, EventArgs e)
{
    if (txtNewPassword.Text.Trim().Length <= 0)
    {
    }

    if (txtConfirmNewPassword.Text.Trim().Length <= 0)
    {
    }

    if (txtNewPassword.Text.Trim() != txtConfirmNewPassword.Text.Trim())
    {
    }
    else
    {
        //correct format and save the values.here i want to see a popup msg first and then click ok save values,otherwise exit..
    }
}

我该怎么做?

【问题讨论】:

    标签: c# javascript html asp.net


    【解决方案1】:

    除非您在用户填写新密码字段后添加中间步骤,否则仅通过服务器代码无法实现您尝试执行的操作。

    最好的方法是使用 javascript 或 jQuery 验证客户端上的密码字段,如果 txtNewPassword == txtConfirmNewPassword 则显示确认对话框,然后调用服务器保存更改。

    【讨论】:

    • What you're trying to do isn't possible through server code alone:这不是真的。页面的后期处理可以以div 的形式呈现一个“弹出”框。甚至可以实现 AJAX 来做到这一点。
    • 仅通过服务器代码完全正确,除非您添加客户端代码,无论您以何种方式添加它
    • 由于 ASP.NET 的本质,持久性是通过页面上的 VIEWSTATE 隐藏元素授予的。变量向后和向前传递。当页面发布到服务器时,可以根据其VIEWSTATE 重新呈现页面。然后,您可以根据需要更改页面上现有的服务器端对象以显示或隐藏。我一直在我的页面上这样做。
    • 恭喜你,但你还是错了,你只引用了我的一部分,现在走开
    • Westie,我不知道你怎么能开始不同意它不能单独使用服务器代码来完成,然后立即切换到谈论 div(客户端!)和 ajax (客户端!)。你实际上是在不知不觉中同意了 Ted。
    【解决方案2】:

    这是用于客户端验证的 java 脚本中的示例代码调用 onclientclick 事件中的函数

    function validate() {
    
                   if (document.getElementById("<%=txtNewPassword.ClientID%>").value == 0) {
                        alert("Please Enter New Password.");
                        document.getElementById("<%=txtNewPassword.ClientID%>").focus();
                        return false;
                    }
                  if (document.getElementById("<%=txtConfirmPassword.ClientID%>").value == 0) {
                        alert("Please Enter Confirm Password.");
                        document.getElementById("<%=txtConfirmPassword.ClientID%>").focus();
                        return false;
                    }
                    if (document.getElementById("<%=txtNewPassword.ClientID%>").value != document.getElementById("<%=txtConfirmPassword.ClientID%>").value) {
                        alert("Provided Confirmation Password is wrong.");
                        document.getElementById("<%=txtConfirmPassword.ClientID%>").focus();
                        return false;
                    }
                        alert("do you want to save password");
                }
    

    【讨论】:

      【解决方案3】:

      您可以使用fancybox 弹出任何您想要的 iframe 或页面

      • 您需要创建confirm.aspx来确认密码更改

      • 要从后面的代码打开confirm.aspx,请使用此代码

        ClientScript.RegisterStartupScript(Page.GetType(), "key", "window.onload=function(){parent.location.href = 'confirm.aspx';}", true);
        

      【讨论】:

        猜你喜欢
        • 2020-06-15
        • 2021-04-21
        • 1970-01-01
        • 2018-09-06
        • 1970-01-01
        • 2015-08-20
        • 2018-11-02
        • 2016-12-22
        相关资源
        最近更新 更多