获取表单(前两种常用)
1、document.getElementById("id属性值")
通过from标签的id属性值获取表单对象
<from id="myform1" name="myform1" action=""></from>
<script type="text/javascript">console.log(document.getElementById("myform1"));</script>
2、document.表单的name属性值
通过表单的name属性值获取表单对象
<from id="myform2" name="myform2" action=""></from>
<script type="text/javascript">console.log(document,myform2);</script>
3、document.forms[下标]
通过指定下标获取表单元素
4、document.forms[表单的name属性值]
通过表单的name属性值获取表单对象
document.forms获取HTML文档中所有的表单对象
获取表单元素
1、获取input元素
(1)document.getElementById("id属性值")
通过元素的id属性值获取表单元素对象
(2)表单对象.表单元素的name属性值
通过表单对象中对应的元素的name属性值获取表单对象
(3)document.getElementByName("name属性值")
通过表单元素的name属性值获取
(4)document.getElementByTagName("标签名/元素名")
通过标签名获取表单元素对象
2、获取单选按钮
注:相同的一组单选按钮,需要设置相同的name属性值
(1)document.getElementByName("name属性值")
通过name属性值获取
(2)判断单选按钮是否选中
checked选中状态
在JS代码中,checked=true表示选中,checked=false表示不选中
在HTML标签中,checked=checked或checked表示选中,不设置checked属性表示不选中
(3)获取单选按钮的值
元素.value;
3、获取多选按钮
与单选按钮相同
4、获取下拉选项
(1)获取下拉框对象
var对象=document.getElementById("id属性值")
(2)获取下拉框的下拉选项列表
var options=下拉框对象.options;
(3)获取下拉框被选中项的索引
var index = 下拉框对象.selectedIndox;
(4)获取下拉框被选中项的值
var 值=下拉框对象.value;
(5)通过选中项的下标获取下拉框被选中项的值
var 值=下拉框对象.options[index].value;
(6)获取下拉框被选中项的文本
var 文本值=下拉框对象.options[index].text;
注:1、获取下拉框选中项的值时:(value)
如果option标签设置了value属性值,则获取value属性对应的值
如果option标签未设置value属性值,则获取的是option双标签中的文本值
2、下拉框的选中状态
选中状态:selected=selected、selected、selected=true
未选中状态:不设置selected属性、selected=false
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<from id="myform1" name="myform1" action=""></from>
<from id="myform2" name="myform2" action=""></from>
<form id="myform" name="myform" action="" method="get">
姓名:<input type="text" id="uname" name="uname" value="zs" /><br />
密码:<input type="password" id="upwd" name="upwd" value="1234" /><br />
<input type="hidden" id="uno" name="uno" value="隐藏域" /><br />
个人说明:<textarea name="intro"></textarea>
<br />
<button type="button" onclick="getTxt();">获取元素内容</button>
<select id="ufrom" name="ufrom">
<option value="">请选择</option>
<option value="Beijing" selected="selected">北京</option>
<option value="Shanghai">上海</option>
<option>杭州</option>
</select>
<button type="button" onclick="getSelect()">获取下拉选项</button>
</form>
<script type="text/javascript">
console.log(document.getElementById("myform1"));
console.log(document, myform2);
console.log("-----------");
console.log(document.forms);
console.log(document.forms[0]);
console.log(document.forms['myform2']);
function getTxt() {
var uname = document.getElementById("uname").value;
console.log(uname);
var pwd = document.getElementById("myform").upwd.value;
console.log(pwd);
var uno = document.getElementsByName("uno")[0].value;
console.log(uno);
var intro = document.getElementsByTagName("Textarea")[0].value;
console.log(intro);
}
function getSelect() {
var ufrom = document.getElementById("ufrom");
console.log(ufrom);
var opts = ufrom.options;
console.log(opts);
var index = ufrom.selectedIndex;
console.log("选中项的下标 " + index);
var val = ufrom.value;
console.log("选中项的下标 " + val);
var val2 = ufrom.options[index].value;
console.log("选中项的下标 " + val2);
var txt = ufrom.options[index].text;
console.log("选中项的下标 " + txt);
}
</script>
</body>
</html>
提交表单
一、使用普通按钮 type="button"
1、给按钮绑定click点击事件,绑定函数
2、在函数中,进行表单校验(非空校验、合法性校验等)
3、如果校验通过,则手动提交表单 表单对象.submit
二、使用提交按钮 type="submit"
1、给按钮绑定click点击事件,绑定函数
2、函数需要有返回值,返回true或false(如果return false,则表单不会提交;如果return true,则表单提交)
3、在函数中,进行表单校验(非空校验、合法性校验等)
4、如果校验通过,返回true,如果校验不通过,则返回false
三、使用提交按钮 type="submit"
1、给表单from元素绑定submit提交事件,绑定函数
2、函数需要有返回值,返回true或false(如果return false,则表单不会提交;如果return true,则表单提交)
3、在函数中,进行表单校验(非空校验、合法性校验等)
4、如果校验通过,返回true,如果校验不通过,则返回false
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form id="myform" name="myform" action="http://www.baidu.com" method="get">
姓名:<input name="uname" id="uname" />
<span id="msg" style="font-size: 12px;color: red;"></span><br />
<button type="button" onclick="SubmitForm1()">提交</button>
</form>
<hr />
<form id="myform2" action="http://www.baidu.com" method="get">
姓名:<input name="uname2" id="uname2" />
<span id="msg2" style="font-size: 12px;color: red;"></span><br />
<button type="submit" onclick="return SubmitForm2()">提交</button>
</form>
<hr />
<form id="myform3" action="http://www.baidu.com" method="get" onsubmit="return SubmitForm3()">
姓名:<input name="uname3" id="uname3" />
<span id="msg3" style="font-size: 12px;color: red;"></span><br />
<button type="submit">提交</button>
</form>
<script type="text/javascript">
function SubmitForm1(){
var uname=document.getElementById("uname").value;
if (isEmpty(uname)){
document.getElementById("msg").innerHTML="*姓名不能为空";
}
document.getElementById("myform").submit();
}
function isEmpty(str){
if(str == null||str.trim() ==""){
return true;
}
return false;
}
function SubmitForm2(){
var uname=document.getElementById("uname2").value;
if (isEmpty(uname)){
document.getElementById("msg2").innerHTML="*姓名不能为空";
return false;
}
return true;
}
function SubmitForm3(){
var uname=document.getElementById("uname3").value;
if (isEmpty(uname)){
document.getElementById("msg3").innerHTML="*姓名不能为空";
return false;
}
return true;
}
</script>
</body>
</html>
Ajax------异步无刷新技术
原生Ajax的实现流程
1、得到XMLHttpRequest();
var xhr = new XMLHttpRequest();
2、打开请求
xhr.open(method,url,async);
method 请求方式,通常是get|post
url 请求地址
async 是否异步。如果是true表示异步,false表示同步
3、发送请求
xhr.send(params);
params 请求时需要传递的参数
如果是get请求,设置null。(get请求的参数设置在url后面)
如果是post请求,无参数设置为null,有参数则设置参数
4、接收响应
xhr.status 响应状态(200=响应成功,404=资源未找到,500=服务器异常)
xhr.responseText 得到响应文本
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
function text01() {
var xhr = new XMLHttpRequest();
xhr.open("get", "js/date.json", false);
xhr.send(null);
if (xhr.status == 200) {
console.log(xhr.responseText);
} else {
console.log("状态码:" + xhr.status + ",原因:" + xhr.responseText)
}
console.log("同步请求...");
}
function text02() {
var xhr = new XMLHttpRequest();
xhr.open("get", "js/date.json", true);
xhr.send(null);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if (xhr.status == 200) {
console.log(xhr.responseText);
} else {
console.log("状态码:" + xhr.status + ",原因:" + xhr.responseText)
}
}
}
console.log("异步请求...");
}
text02();
</script>
</body>
</html>