myForm.onsubmit = function() {
// ...
return false;
};
在我們開始訪問數據之前,請確保您抓取您需要的元素。它使事情變得更快一些,因爲每次提交表單時都不必從DOM中選擇整個元素。例如:
var myForm = document.getElementById('myForm'),
myTextField = document.getElementById('myTextField'),
mySelectBox = document.getElementById('mySelectBox'),
// ...
根據您擁有什麼樣的表單元素,可以通過不同的方式訪問其數據。文本輸入,文本區域,並選擇框是很容易:
var textValue = myTextField.value,
selectValue = mySelectBox.value;
單選按鈕和複選框是一個有點複雜,因爲你必須要經過每一一個,看看哪一個(或多個)是/是檢查,哪個(些)不是/都沒有,像這樣:
var isOneChecked = checkboxOne.checked,
isTwoChecked = checkboxTwo.checked;
與你的藍/粉紅色背景例如去,你可能會想一些與此類似:
var myForm = document.getElementById('myForm'),
maleBox = document.getElementById('maleBox');
myForm.onsubmit = function() {
var isMale = maleBox.checked;
if (isMale) {
document.body.style.backgroundColor = 'manlyBlue';
} else {
document.body.style.backgroundColor = 'sexistPink';
}
};
便箋
如果您確實決定與事件處理程序一起使用,請記住一次只能有一個應用於您的表單。如果您想要在submit
事件中附加不同的功能,則必須使用事件聽衆,這是一個完全不同的球類遊戲並引入了自己的問題。
最後一個例子只檢查「我是男人」元素的值,因爲(大概)你使用的是單選按鈕,而你只有兩個選項。如果「我是一個人」沒有被檢查,那麼另一個應該是。但如果表格以開頭,則既不檢查選項,也可以將其視爲一個錯誤。
最後一個例子也使用內聯樣式來改變主體的背景顏色。打字讓我很傷心。更加可以忍受的方法是根據需要添加/刪除類,但是這又超出了這個問題的範圍。
我喜歡它髒;-) – 2011-05-18 21:38:18