2013-05-30 21 views
0

我有兩個文本框:條件比較字符串中的兩個領域,但只有當一個領域已經評估爲真

Textbox1的獲得的電子郵件地址(表單上的電子郵件文本框)

2 。文本框2請求用戶確認電子郵件

我需要通過詢問用戶在文本框2.重新進入然後評估的聲明,並設置一個布爾爲true或false來比較文本框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,這將指示錯誤。

最後,如果第一個框通過驗證並且確認失敗,則會顯示錯誤消息以進行確認。

上面的代碼被細分,因爲我一直在嘗試做不同的事情。

感謝您的幫助。

回答

1

你不指定它是網頁表單還是MVC,因爲MVC有一個非常強大的幫助器,我會假設這是網頁表單。

從你的代碼,你應該重構爲:

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的驗證與2場之間的平等:http://jsbin.com/imiten/1/

+0

是:我使用JQuery不過這是最後一道防線,如果用戶關閉了jQuery,這個代碼將永遠不會踢,除非客戶 - 端驗證/ JavaScript已關閉。對不起,我忘了添加,這是ASP表單。謝謝,我的朋友。 我知道JS是一個演示,但兩個字段都要求輸入點擊。我想要做的只是要求確認,如果第一項是有效的。但那是JS,我正在問ASP。我會在未來幾周內做到這一點。再次感謝! – Asynchronous

+0

我仍然不知道你需要什麼然後:/ – balexandre

+0

感謝您的幫助我的朋友。 – Asynchronous

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 
}