2013-10-13 153 views
0

我試圖在用戶在電子郵件區域輸入內容(顯然正在驗證)時關閉提交按鈕,但由於某種原因它無法正常工作。驗證在表單上不起作用

我的驗證有什麼問題?

function validateEmail(email) { 

    var btnSubmit = document.getElementById("submitButton"); 


var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 

btnSubmit.disabled = !(validateEmail(email)); 


} 

我在做什麼錯?當用戶輸入變化的區域(onchange =(「validateEmail(email);」)時,該函數被調用;

//////當我得到一個解決方案後,我嘗試了它,並且JavaScript工作! (),但我覺得我做的事情錯打電話,是因爲我得到這個對我的警告:

.Disabled作爲電子郵件您所輸入的按鈕是無效的:[對象HTMLInputElement]

以下是我的說法:

而且JavaScript是解決方案中的小提琴。

+0

函數不返回任何值? –

+1

我在閱讀手機時遇到了麻煩,還是無限遞歸? –

+0

我覺得這個函數應該是無限遞歸的 –

回答

0

問題的代碼:

1.功能沒有做任何驗證。

你的函數什麼都不做,而不是每次遞歸調用它自己。您沒有使用創建的正則表達式

您的電子郵件進行的正則表達式

2.不用於檢查電子郵件字符串是否有效。

解決方案:

您應該使用檢查電子郵件字符串是否有效沒有取得正則表達式。並據此應用後果。

function validateEmail(email) { 

    var btnSubmit = document.getElementById("submitButton"); 
    var re = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; 
    if(re.test(email)){ 
     return true; 
    } else { 
     btnSubmit.disabled = true; 
     return false; 
    } 



} 

這裏是一個working demo

+0

謝謝,它似乎工作......最後一件事......當我返回警報時,它不會返回用戶給的電子郵件,這是我如何調用它。 這是正確的方法嗎? 這是什麼警告告訴我「。因爲您輸入的電子郵件無效,所以禁用該按鈕。:[對象HTMLInputElement]」謝謝你的時間! – user2766367