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