2013-10-04 21 views
1

我目前正在嘗試做一個表單,要求用戶輸入有效的信息。Javascript&Forms

例如下面是一個典型的形式:jsfiddle

我希望用戶把姓名和地址。但是我希望按鈕不可點擊,直到用戶輸入他的姓名和他的電子郵件(以正確的形式)。

如果按鈕不可點擊,是否有任何屬性可以讓我訪問?就像:

function validateButtonSubmit { 
    if (validateEmail(email)) { 
     if (validateName(name)) { 
      document.getElementById("submitButton").clickable = true; 
     } 
    } 
} 

最好的辦法是做到這一點,我是否在正確的方向?

+0

你應該看看jquery驗證器,它使驗證inp在客戶端比這些if語句容易得多(假設你的函數是正確的,除了可點擊的部分外,將其改爲禁用)是正確的。 –

+0

你可以「停用」提交按鈕。請參閱http://stackoverflow.com/questions/13931688/disable-enable-submit-button-until-all-forms-have-been-filled –

+0

[禁用/啓用提交按鈕,直到所有表單都已填寫]的可能重複( http://stackoverflow.com/questions/13931688/disable-enable-submit-button-until-all-forms-have-been-filled) –

回答

2

你也許可以縮短這件事沒有如果你想要嵌套:

function validateButtonSubmit() { 
    var btnSubmit = document.getElementById("submitButton"); 
    btnSubmit.disabled = !(validateEmail(email) && validateName(name)); 
} 
-1

您可以在元素上的removeAttribute調用(),然後調用setAttribute你驗證表單後:

var button = document.getElementById('submitButton'); 
button.removeAttribute('click'); 
// validation stuff 
button.setAttribute('click', submitForm()); 
+0

由於提交可以繞過很多方式,這是一個非常糟糕的解決方案並不容易維護。最好使用已經存在的許多驗證模式之一。 –