2011-11-07 35 views
0

我正在向窗體添加一些JavaScript驗證。形式有,目前看起來像場:使用javascript訪問HTML輸入字段 - 輸入名稱中的空格

<input name="Employee Full Name" value="" type="text" id="Employee Full Name" size="30" maxlength="50" style="width:300px;"> 

我試圖訪問該字段的值,但我似乎與輸入名稱空間不正確這樣做,有沒有辦法逃避?

if (theForm.Employee Full Name.value == ""){ 
    alert("Please enter a value for the \"Employee Full Name\" field.");  
    theForm.Employee Full Name.focus(); 
    return (false); 
} 
+2

請只使用下劃線或任何其他內容,避免了很多麻煩和錯誤不立即顯現,並且沒有額外的努力或拉拔中正。 :(這適用於任何屬性(編號以及) – Esailija

+0

我同意你的意見,但是,我沒有被批准改變表單上的元素名稱。:( – etm124

+1

'camelCaseIsYourFriend'。 – zzzzBov

回答

1

您可以使用對象的括號標記以及數組:

theForm['Employee Full Name'].value == "" 

這允許您訪問屬性其中姓名是. notation語法無效:

foo.1 //foo['1'] 
foo.this-is-wrong //foo['this-is-wrong'] 
foo.bar.baz //although this looks correct, it's wrong if you actually wanted foo['bar.baz'] 
1

將它們包含在方括號內,使用引號。

if (theForm["Employee Full Name"]value == ""){ 
    alert("Please enter a value for the \"Employee Full Name\" field.");  
    theForm.["Employee Full Name"].focus(); 
    return false; 
} 

也可以用這種方式引用每個JavaScript對象。例如,以下所有方法的結果是相同的:

window.location.href 
window["location"].href 
window.location["href"] 
window["location"]['href'] //Single quotes/double quotes don't matter.