javascript快速入门15—表单

    表单就是指的form标签及其里面的内容,要获取一个表单对象,可以给某个form标签加个id属性,然后使用document.getElementById方法获得。也可以使用document.getElementsByTagName("form")来获取所有表单的集合,然后通过下标来访问。还可以给form标签加个name属性,然后可以使用document.getElementsByTagName来访问,注意,同样要使用下标来访问

    事实上,0级DOM(0级DOM并不是任何DOM规范,事实上它是BOM的内容,但浏览器都实现的比较好)为我们提供了更简单的访问From对象的方法——使用document.formName

    Form对象有个elements属性,包是一个含了form标签里面的所有表单控件(input,select等标签,但不包含如div之类的标签)的伪数组

    1. alert(fm.elements.length);//length属性报告了元素的个数

    在之前,访问input这类标签和访问其它标签没什么区别,可以使用ID,也可以使用className,但当它们在表单中时,可以使用它们的nam有来访问

    1. <input name="textInput" type="text" value="文本框" />
    2. </form> alert(document.formName.textInput.value);

    当表单提交时会发生submit事件,我们可以设置事件监听,当用户提交表单时检查表单内容。同时,如果用户输入有误,要阻止表单提交,可以在事件处理函数里return false就行了,当正确时可以调用表单的submit方法提交表单,使用表单的submit方法时不会执行submit事件处理函数

    当表单被重置时会发生reset事件,但这个事件意义不大,因为reset按钮本身意义就不大。同时也有一个reset方法

    1. document.formName.onreset = function () { if (confirm("您真的要重置表单吗?")) { this.reset();
    2. } else { return false;
    3. }
    1. var radios = document.formName.radios;//页面中多个单选按钮name为radios
    2. alert(radios.length);//返回一个元素列表
    3. var one = document.formName.one;//只有一个
    4. alert(one.checked);//只返回这个元素

    与checked类似的,它们还有个defaultChecked属性,返回是否是在HTML指定默认选中的

    单行文本框即type属性设为text的input标签,多行文本框即textarea,它们除了与其它input标签一样具有的value属性处,还具有defaultValue属性表示文本框中的默认文本,即在HTML里所指定的value值的

    文本框还有一个方法:select,可以使文本框中的文字呈选中状态。

    表单元素中最复杂的就算是select对象了。select是一复合对象,它包含option标签,也有可能包含optgroup标签。虽然select可以多选,但我们这里只讨论单选的,多选的类似!

    获取选中项的值

    1. alert(mySel.options[mySel.selectedIndex].value); //更快捷的方法
    2. alert(mySel.value);

    而向select对象中添加option,本可以使用document.createElement及appendChild等方法的,但HTML DOM为我们提供了更方便的方法了

    1. var select = document.formName.mySel;
    2. select.add(opt,select.options[0]);//将opt添加到第一个option的后面
    3. select.add(opt);//在IE下,没有第二个参数时,会将opt添加到最后
    4. //上面的代码在FF下会出错,必须使用下面的方法
    5. select.add(opt,null);//但这在IE会出错
    6. //下面的方法可以两全了,但长了一点
    7. select.add(opt,select.options[select.length-1]); //删除option的方法remove

    Option对象也有defaultSelected属性返回在HTML里指定是否是默认选中项

    当表单控件失去焦点时会触发blur事件,当控件获得焦点时又会触发focus事件。与之对应,blur方法将使表单控件失去焦点,focus方法将使控件获得焦点,与Form对象的submit方法一样,使用JavaScript执行blur方法与focus方法并不会触发相关事件监听函数

    select对象的change事件:当用户选中一个选项,或者取消了对一个选项的选定时,就会发生change事件。

    textarea对象的change事件:当用户改变文本区域的值然后通过把键盘焦点移动到其他地方“确认”这些改变的时候,发生change事件。

    select事件:当文本框中的文本被选中时发生