2009-11-28 113 views
0

我正在做一些基本的表單驗證。Javascript表單驗證

我有以下的javascript函數

function fullField(x,span_id) 
{ 
var result=false; 
if(x.value==0) 
{ 
    document.getElementById(span_id).innerHTML =" Required"; 
    result=false; 
}else{ 
    document.getElementById(span_id).innerHTML="";//can use tick <img src='images/site_images/tick.png' /> 
    result=true; 
} 

return result; 
} 

我有檢查的onblur

<input type='text' onblur='return fullField(this,'span1')name='first_name' /> 
<span id='span1'></span> 

函數工作,寫「必要」到跨度中的輸入,如果人的標籤場外沒有填寫。然而,當我點擊提交表格仍然提交。 我想我在這裏錯過了一些基本點,因爲我雖然如果我的表單中的任何字段返回false然後表單不會提交。解決此問題的唯一方法是在提交時再次檢查整個表單嗎?

回答

1

您可以在頁面上創建一個變量,如果驗證字段失敗,然後表單爲onSubmit(return(myValidationVariable)) - 不是最優雅的設計,但應該適用於您當前的設置。

+0

這是一個好主意。返回的值是否不會阻止提交的表單? – andrew 2009-11-29 00:21:51

+0

我需要知道一個函數返回的'false'是否會阻止提交字段,或者唯一的方法是在提交時檢查整個表單。 – andrew 2009-11-29 00:46:44

+0

如果您從onSubmit返回false,它將取消表單提交。那麼你唯一會遇到的問題是,如果你有必要的領域,他們從來沒有觸及那些不包含在你的驗證。你的設計不是人們通常使用的。要做的更好的事情是獲得一些東西,你可以驗證onSubmit中的所有字段,但是現在不適合你的代碼。 – 2009-11-29 00:54:36