0

我有两个文本框:

1. Textbox1 获取一个电子邮件地址(表单上的电子邮件文本框)

2.文本框二要求用户确认电子邮件

我需要通过要求用户在文本框 2 中重新输入来比较在文本框 1 中输入的电子邮件地址。然后评估一个语句并将布尔值设置为真或假。

我阅读了所有方法行String.Equals和其他行,并尝试使用它们。

我在一个类中有这两个变量,我需要在程序的其他部分访问它们:

    public static bool IsValidEmail { get; set; }
    public static bool IsValidEmailConfirmed { get; set; }

        if (!string.IsNullOrEmpty(checkEmail))
        {
            IsValidEmail = Regex.IsMatch(checkEmail, MatchEmailPattern);
        }
        else
        {
            IsValidEmail = false;
        }

        //VERIFY EMAIL ADDRESS MATCHES
        //---------------------------
        if (IsValidEmail == true)
        {
            IsValidEmailConfirmed = checkEmailConfirm.Equals(checkEmail);
        }
        else
        {
            IsValidEmailConfirmed = false;
        }

问题是我只希望确认文本框在初始文本框通过验证时请求输入。要求某些人确认错误的电子邮件地址(格式)是没有意义的。因此,用户输入一封电子邮件,如果失败,则不请求确认,但是此变量 IsValidEmail = false;将评估为 false,这将指示错误。

最后,如果第一个框通过验证并且确认失败,则错误消息要求确认。

上面的代码被分解了,因为我一直在尝试做不同的事情。

感谢您的帮助。

4

2 回答 2

1

您没有指定它是 Web 表单还是 MVC,因为 MVC 有一个非常强大的助手,我将假设这是 Web 表单。

从您的代码中,您应该重构为:

IsValidEmail = !string.IsNullOrEmpty(checkEmail) && Regex.IsMatch(checkEmail, MatchEmailPattern);

//VERIFY EMAIL ADDRESS MATCHES
IsValidEmailConfirmed = IsValidEmail && checkEmailConfirm == checkEmail;

除此之外,我还建议使用jQuery Validate(假设您已经使用 jQuery)并在客户端中执行此操作。

<form ...>
    Email: <input type="text" id="email" name="email" class="required email" />
    Confirm email: <input type="text" id="email2" name="email2" class="required email" equalTo="#email" />
</form>

jQuery Validate 的实时演示与 2 个字段之间的相等性:http: //jsbin.com/imiten/1/

于 2013-05-30T09:21:41.890 回答
1

您可以嵌套逻辑或将其从属性更改为函数。

if(validEmail)
{
    if(!match)
    {
        'Code for non matching, flags/vars.
    }
    else
    {
        'Here is the point where all the data is validated.
    }
}
else
{
    'Code for invalid email, flags, variables
}

或功能

Public void validateEmail()
{
     if(!validEmail)
     {
        'Set property
        return; 'This will exit the function right here.
     }
     if(!matching)
     {
        'Set properties/vars
        return; 'Another exit.
     }

     'If the code makes it here your data is valid
}
于 2013-05-30T10:33:33.640 回答