JavaScript 学习-2


1. 表单和表单元素

1.1 form对象

form对象的引用:document.forms[0]或者引用name属性,如:document.forms["formname"],也可以直接使用document.formname调用form对象

1.2 form表单属性和元素

name,target,action,method,enctype

赋值改变:document.forms[0].actiondocument.formName.action

获得form中的元素使用form.elements[],如下面将text值清零

var form=window.document.forms[0];
for(var i=0;i<form.elements.length;i++){
if(form.elements[i].type=="text"){
form.elements.value="";
}
}

1.3表单控件

  • 文本框 text,文本的最常用的属性是value属性,value属性的内容通常是一个字符串。
  • 按钮对象 button,主要是click处理事件
  • 复选框对象checkbox,属性为checked,布尔类型
  • 单选按钮对象 radio,设置该对象时候需要设置为相同的name,获取单选按钮对象的数量可以使用document.forms[0].groupName.length,检测是否高亮选择使用document.forms[0].groupName[0].checked
  • select对象,select对象是符合对象一个包含了option对象数组的对象,访问方法如下document.forms[0].selectName.selectedIndex获得当前选择的下标,document.forms[0].selectName.options[n].textdocument.forms[0].selectName.options[n].value,其中text属性是select对象显示的字符串,可以使用onchange事件处理器,比如我们常见的下拉后选择网站后直接导航。

<html>
<head>
<title></title>
<script type="text/javascript">
function goThere () {
var list=document.forms[0].urlList;
location.href=list.options[list.selectedIndex].value;
}
</script>
</head>
<body>
<form name="radiolist">
<select name="urlList" onchange="goThere()">
<option selected value="http://www.baidu.com">baidu
<option value="http://www.qq.com">qq
</select>
</form> </body>
</html>

1.4向函数传递表单数据和元素

javaScript提供了一个关键字this,它通常指向对象,这个对象包含使用这个关键词的脚本,因此,在一个文本域的onchange事件处理器中,可以使用this作为关键词为函数的参数如

<input type="text" name="entry" onchage="upperMe(this)">

function upperMe(field){ //dosomething }

每个控件都有一个指向所含的表的属性,故可以这么写this.form获取该form

<html>
<head>
<title>js_4</title>
<script type="text/javascript">
function processData (formthis) {
for(var i=0;i<formthis.Beatles.length;i++){
if(formthis.Beatles[i].checked){
break;
}
}
var beatle=formthis.Beatles[i].value;
var song=formthis.song.value;
alert("chcecking whether "+song+" feature in " +""+beatle);
}
function varifySong(entry){
var song=entry.value;
alert("checking whether "+song+" is a beatles tunes");
}
</script>
</head>
<body>
<form onsubmit="return false">
<p>choose your favoriate Beatle:
<input type="radio" name="Beatles" value="Jhon" checked>John
<input type="radio" name="Beatles" value="Markey">Markey</p>
<p> input your song name:<br>
<input type="text" name="song" value="song search" onchange="varifySong(this)">
<input type="button" name="process " value="process requset..." onclick="processData(this.form)"></p>
</p>
</form>
</body>
</html>

这段代码有一个比较特殊的逻辑,实验后能发现,在输入框输入之后,点击process requeset之后我们可以看到首次触发是文本框的onchange事件,而process requeset的事件并没有执行。因为text onChange事件的触发是在text离开焦点就触发了,所以在点击text之外的任何的地方都会先触发onChange事件,而按钮的单击在第二次点击后才能执行。这就是组合验证。

1.5提交和验证表单

onsubmit事件处理必须求值得到return true才允许继续提交,或者return false阻止提交。

<html>
<head>
<title>js_5</title>
<script type="text/javascript">
function checkForm(fomr1){
for (var i = 0; i < fomr1.elements.length; i++) {
if(fomr1.elements[i].type=="text" &&fomr1.elements[i].value==""){
alert("fill all the name");
return false;
}
}; }
</script>
</head>
<body>
<form onsubmit="return checkForm(this)">
Please enter all requested information:<br>
FirstName: <input type="text" name="FirstName"><br>
LastName :<input type="text" name="LastName"><br>
<input type="submit">
</form>
</body>
</html>

JavaScript 学习(2)表单元素的更多相关文章

  1. 9. Javascript学习笔记——表单处理

    9. 表单处理 9.1 表单的基础知识 ///表单用 <form> 元素表示,对应的是 HTMLFormElement 类型,继承自 HTMLElement. //属性:action.me ...

  2. JavaScript之控制表单元素的值

    表单元素.value 获取表单元素的值 表单元素.value='这是修改后的值' 修改表单元素的值 案例: (1)html <input type="text" id=&qu ...

  3. HTML学习笔记 表单元素

    <form></form>代表表单 action:往什么地方提交 method:提交方式  get显示提交(不安全)  post隐视提交(安全) 提交内容:  name=输入的 ...

  4. [html5] 学习笔记-表单新增的元素与属性(续)

    本节主要讲解表单新增元素的controls属性.placeholder属性.List属性.Autocomplete属性.Pattern属性.SelectionDirection属性.Indetermi ...

  5. HTML5 学习总结(二)——HTML5新增属性与表单元素

    一.HTML5新增属性 1.1.contextmenu contextmenu的作用是指定右键菜单. <!DOCTYPE html> <html> <head> & ...

  6. HTML5 学习笔记(二)——HTML5新增属性与表单元素

    目录 一.HTML5新增属性 1.1.contextmenu 1.2.contentEditable 1.3.hidden 1.4.draggable 1.5.data-* 1.6.placehold ...

  7. HTML5学习总结——HTML5新增属性与表单元素

    一HTML5新增属性 1.1contcxtmcnu contextmenu的作用是指定右键菜单. <!DOCTYPE html> <html> <head> < ...

  8. HTML之学习笔记(十)表单元素

    html表单元素的基本格式为(必须包含在form标签中)

  9. [html5] 学习笔记-表单新增元素与属性

    本节讲的是表单元素的form,formaction属性,frommethod,formenctype属性,formtarget,autofocus属性,required,labels属性. 1.for ...

随机推荐

  1. Spring jar 下载地址

    Spring jar 下载地址 http://repo.springsource.org/libs-release-local/org/springframework/spring/

  2. 全栈工程师的武器——MEAN(转)

    MongoDB MongoDB也就是常说的NoSQL数据库.可以认为它是文档结构的数据库,而不是由行.列.表组成的数据库.基本的用法是存储JSON数据,这很适合JavaScript程序.它是非关系型. ...

  3. Vim进阶指南

    常用按键说明 按键 解释 移动光标 n+(Space) 向右移动n个字符 n+(Enter) 向下移动n行 nG 移动到第n行 gg 移动到第一行 G 移动到最后一行 0或Home键(Mac使用fn+ ...

  4. ActiveMQ从源代码构建

    众多开源项目.我们一般都是直接拿过来用之而后快. 只是我们也应该知道这些项目是怎样从源代码构建而来的. 既然代码是写出来的,就不能避免有BUG存在,话说没有完美的软件,也没有无漏洞的程序. 事实上从源 ...

  5. google_gflags使用

    gflags是google开源的一个解析命令行参数的工具. 最简单的demo #include <iostream> #include <gflags/gflags.h> us ...

  6. matplotlib之极坐标系的极径网格线(rgrids)的显示刻度

    matplotlib之极坐标系的极径网格线(rgrids)的显示刻度 #!/usr/bin/env python3 #-*- coding:utf-8 -*- #################### ...

  7. vs2008、vs2012添加公共头文件

    当我们使用第三方库(opencv.boost)的时候,往往需要把它们的头文件和库文件添加到工程中去,然而如果每次新建工程都添加,那就太笨了,下面介绍方法可以让每个新建的工程都默认添加设置好的头文件和库 ...

  8. Installing OwnCloud 9 on Debian 8

    原文:https://www.howtoforge.com/tutorial/owncloud_9-installation-on-debian_8/?utm_source=tuicool&u ...

  9. LNMP笔记:php-fpm – 启动参数及重要配置详解

    约定几个目录/usr/local/php/sbin/php-fpm/usr/local/php/etc/php-fpm.conf/usr/local/php/etc/php.ini php-fpm的启 ...

  10. HBase学习笔记——配置及Shell操作

    1.HBase的配置 还是以前配置的集群,见:http://www.cnblogs.com/DarrenChan/p/6493373.html 我们约定:weekend03和weekend04放HMa ...