2011-01-31 30 views
0

我有一個問題,我有3個輸入字段。第一個字段用於用戶名,另外兩個字段用於密碼驗證。現在,密碼字段不能包含用戶名字段,因此如果密碼字段包含用戶名的任何部分,我已經編寫了顯示消息的邏輯。但是,如果用戶名字段中沒有任何內容,那麼如果在密碼字段中鍵入了某些內容,那麼同樣的驗證消息仍然會觸發。即使未輸入任何值,JS驗證錯誤也會觸發

下面是代碼

代碼獲取用戶名字段:

if (document.getElementById("tUserName")) { 
     uN = document.getElementById("tUserName").value; 
    } 
    else { 
     uN = ""; 
    } 

用戶名字段的正則表達式:

containsUsername = new RegExp(uN); 

這是負責驗證錯誤代碼消息:

if (document.getElementByIdd("tUserName")) { 
     if (containsUsername.test(value)) { 
      dojo.addClass(dojo.byId('result-userName'), 'hide'); 
     } 
     else { 
      dojo.removeClass(dojo.byId('result-userName'), 'hide'); 
     } 
    } 
+0

我在努力想一個好的,可靠的方式來匹配沒有字符串的正則表達式。也許像`/ [^ \ s \ S] /`? – Pointy 2011-01-31 19:42:53

回答

1

我擔心我必須在這裏忽略這一點,所以忍受着我,如果我....

所以你想驗證錯誤不顯示,當他們在用戶名字段中沒有任何東西時輸入密碼?

在嘗試通過正則表達式運行之前,您不僅可以檢查用戶名的值是否爲空字符串以外的值嗎?

if (document.getElementById("tUserName")) { 
    if (document.getElementById("tUserName").value != '' && containsUsername.test(value)) { 
     dojo.addClass(dojo.byId('result-userName'), 'hide'); 
    } 
    else { 
     dojo.removeClass(dojo.byId('result-userName'), 'hide'); 
    } 
} 
相關問題