2014-08-31 53 views
-2

我在JavaScript表單驗證中遇到了一些問題。可選字段驗證

我在我的HTML代碼中有一些可選字段。提交時,他們不需要填寫,但如果用戶提供一些輸入,他們必須經過驗證。例如,我有一個可選的電話號碼字段。如果用戶提供輸入,那麼我需要檢查它們是否都是數字。

我該怎麼做?

+0

http://html5pattern.com/ – 2014-08-31 10:18:58

回答

1

你只需要調用驗證碼如果字段值滿足一些先決條件,在這種情況下:

var fieldValue = document.getElementById("someInput").value; 
if(fieldValue.length > 0) { 

    if(someValidationFunction(fieldValue)) alert("Field is invalid"); 
} 
0

你:如果字段的值(通過測試的字符串值的length財產選中)可以將您的自定義方法作爲回調提交給您的表單中的提交操作

<form onSubmit="return customValidation()> 

在該方法中進行驗證。

function customValidation() 
{  
    //code to test fields 
    fieldToValidate = document.getElementById("field-id") 
    //validate the field 
} 
0

如果您需要更安全的話,您不能使用其他答案;你不應該用JavaScript來做這件事,因爲如果用戶由於某種原因在瀏覽器中關閉了瀏覽器(或者他們故意關閉它),那麼表單將不會被驗證。相反,你需要在服務器上使用PHP來完成。在表單發送給您的服務器上需要獲取與表格($_GET['phonenumber'];)一起發送的查詢字符串,並查看它是否是一個數字(int intval (mixed $phonenumber))。這應該返回NaN,如果它不是數字。

1

什麼阻止你使用HTML5自己的驗證?

<input type="tel" pattern="[0-9]+" /> 

沒有JavaScript需要,可以在所有現代瀏覽器上運行。


有關安全性的說明:請不要依賴客戶端驗證來解決安全問題,因爲它們可以被平凡地禁用。所有的驗證都應該在服務器端完成