2011-10-31 69 views
0

有誰知道爲什麼這個JavaScript不工作?它返回該字段爲空時,它不是HTML/JavaScript驗證失敗

我使用的表格上的HTML是:

onsubmit="return validate_form ();" method="post" name="AddPTR" 

和JavaScript是:

<script type="text/javascript"> 
function validate_form () 
{ 
valid = true; 

if (document.forms.AddPTR.PTR2.value == "") 
{ 
    alert ("Please fill in the PTR box."); 
    valid = false; 
} 

return valid; 
} 

</script> 
+0

在哪裏輸入字段的HTML? –

+2

可能您在下面的鏈中找到空引用:'document.forms.AddPTR.PTR2.value'。當在javascript中聲明局部變量時,最好放置一個'var'。所以'var valid = true;'。這可以避免*污染全球範圍。 –

+1

應該工作正常,請參閱示例:http://jsfiddle.net/ezDR4/ – ComFreek

回答

5

document.forms是一個標準的DOM屬性,與文檔中的<form>標籤保持一個陣列。

如果您要訪問的AddPTR形式,你可以做到這一點有兩種方式:

  • 如果你只得到了文檔中的一個<form>,或知道他們的順序,你可以訪問按索引排列的數組:document.forms[0]
  • 如果你想得到<form>的名字AddPTR,你可以從document.forms屬性中獲取它作爲關聯數組:document.forms["AddPTR"]。這種方法具有獨立於文檔佈局的優點。

看到這個W3C鏈接上的一些信息,如何訪問關聯數組:Objects in JavaScript: Objects as associative arrays

+0

嗨,我剛剛嘗試使用if(document.forms [「AddPTR」] [PTR2] .value ==「」)仍然沒有運氣,任何想法? –

+0

只需使用'document.forms [「AddPTR」] .PTR2.value ==「」'或'document.forms [0] .PTR2.value ==「」'。你也可以執行'document.forms [「AddPTR」] [「PTR2」]。value ==「」'。請記住在將數組作爲關聯數組訪問時使用該鍵的字符串。 –

+0

您好,您建議的第一個和第三個選項顯示請填寫字段消息,即使字段填寫,第二個建議不顯示消息如果空或填充 –