梅科尔工作室-第八次网页前端培训笔记(JS表单与Ajax)

本文详细介绍了JavaScript中表单的操作,包括通过不同方式获取表单及元素,表单元素的验证与提交。同时,讲解了JqueryAjax的基础用法,包括同步和异步请求。内容涵盖表单验证、Ajax交互核心步骤等关键知识点。
摘要由CSDN通过智能技术生成

前言

本文记录我学习JS表单和Jquery Ajax的笔记


1、JS表单

表单是我们页面向后台传输数据的一种非常常见的方式,在进行数据发送(请求发出)之前,我们应该现在页面进行一系列数据合法性的验证,节省不必要的错误数据的传输,以及提高用户的体验度。

1.1.获取表单

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>第八次培训</title>
	</head>
	<body>
		<form id="myform1" name="myform1" action=""></form>
		<form id="myform2" name="myform2" action=""></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);
		</script>
	</body>
</html>

前两种常用

例如:

1. document.getElementById( "id属性值");
通过from标签的id属性值获取表单对象

2. document.表单的name属性值;
通过表单的name属性值获取表单对象

3. document.forms[下标];
通过指定下标获取表单元素

4.document .forms[表单的name属性值];
通过表单的name属性值获取表单对象

document.forms:获取HTML文档中所有的表单对象

1.2.获取表单元素

1.2.1.获取input元素

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>第八次培训</title>
	</head>
	<body>
		<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="隐藏域"/>
		个人说明:<textarea name="intro"></textarea>
			<button type="button" onclick="getTxt();">获取元素内容</button>
		</form>
		<script type="text/javascript">
		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);
		}
		</script>
	</body>
</html>


1. document.getElementById( "id属性值");
通过元素的id属性值获取表单元素对象

2.表单对象.表单元素的name属性值;
通过表单对象中对应的元素的name属性值获取

3. document.getELementsByName ( "name属性值");                                                                      通过表单元素的name属性值获取

4. document.getELementsByTagName("标签名/元素名");                                                                通过标签名获取表单元素对象

1.2.2.获取下拉选项

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>第八次培训</title>
	</head>
	<body>
		<form id="myform" name="myform" action="" method="get">
			来自:
			<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">
		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);
			ufrom.options[2].selected=true;
		}
		</script>
	</body>

</html>

 1.获取下拉框对象
var对象= document.getElementById("id属性值")

2.获取下拉框的下拉选项列表
var options =下拉框对象.options;

3.获取下拉框被选中项的索引
var index =下拉框对象.selectedIndex;

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

1.3.提交表单

<!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" />&nbsp;<span style="font-size: 12px; color: red;" id="msg"></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" />&nbsp;<span style="font-size: 12px; color: red;"
				id="msg2"></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" />&nbsp;<span style="font-size: 12px; color: red;"
				id="msg3"></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 = "* 姓名不能为空!";
					return;
				}
				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>

(1)使用普通button按钮+onclick 事件+事件中编写代码:获取表单.submit();

1.给按钮绑定click点击事件,绑定函数

2.在函数中,进行表单校验(非空校验、合法性校验等)

3.如果校验通过,则手动提交表单
表单对象.submit();
 

(2)使用submit按钮+οnclick="return函数()"+函数编写代码:最后必须返回: return true|false;

1.给按钮绑定click点击事件,绑定函数

2.函数需要有返回值,返回true或false(如果return false,则表单不会提交;如果return true则提交  οnclick="return 函数名()"

3.在函数中,进行表单校验(非空校验、合法性校验等)

4.如果校验通过,返回true;如果校验不通过则返回false

(3)使用submit按钮/图片提交按钮+表单οnsubmit="return 函数();"+函数编写代码:最后必须返回: return true/false;

1.给表单form元素绑定submit提交事件,绑定函数

2.函数需要有返回值,返回true或false(如果return false,则表单不会提交;如果return true则提交  οnclick="return 函数名()"

3.在函数中,进行表单校验(非空校验、合法性校验等)

4.如果校验通过,返回true;如果校验不通过则返回false

注:trim()为字符串方法,去除字符串前后空格
 

2.Jquery Ajax

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>第八次培训</title>
	</head>
	<body>
		<script type="text/javascript">
		function test01(){
			var xhr=new XMLHttpRequest();
			console.log(xhr.readyState);
			xhr.open("GET","js/data.json",false);
			console.log(xhr.readyState);
			xhr.send(null);
			console.log(xhr.readyState);
			if(xhr.status==200){
				console.log(xhr.responseText);
			}else{
				console.log("状态码:"+xhr.status+",原因:"+xhr.responseText)
			}
			console.log("同步请求....")
		}
		test01();
		function test02(){
			var xhr=new XMLHttpRequest();
			xhr.open("GET","js/data.json",true);
			xhr.send(null);
			if(xhr.status==200){
				console.log(xhr.responseText);
			}else{
				console.log("状态码:"+xhr.status+",原因:"+xhr.responseText)
			}
			console.log("异步请求....")
		}
		test02();
		</script>
	</body>
</html>

2.1.$.ajax

原生Ajax的实现流程
1.得到XMLHttpRequest对象
var xhr = new XMLHttpRequest();

2.打开请求
xhr. open(method , uri,async);
method:请求方式,通常是GET | POST

uri:请求地址

async :是否异步,如果是true表示异步,false表示同步

3.发送请求

xhr.send(params );
params:请求时需要传递的参数
如果是GET请求,设置null。(GET请求的参数设置在url后面)
如果是POST请求,无参数设置为null,有参数则设置参数

4.接受响应

xhr.status响应状态(200=响应成功,404=资源未找到,500=服务器异常)

xhr.responseText得到响应结果
 

注:由于是异步请求,所以需要知道后台已经将请求处理完毕,才能获取响应结果通过监听readyState的变化来得知后面的处理状态,4=完全处理
xhr .onreadystatechange = function(){

}


 总结

以上就是今天的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值