数据回显
文本框输入的值对应的是一个value,所以通过el表达式获取域中数据后给到value
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--导入jstl标签库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
%>
<html>
<head>
<title>编辑界面</title>
</head>
<%--引入jquery框架--%>
<script src="<%=path%>/jquery/jquery-1.7.2.js"></script>
<script>
//文本就绪函数
$(function (){
/**单选框的回显
*/
var els = $([name = 'sex'])
//each() 遍历方法
els.each(function (){
//获取的是当前标签对象对应的value的值
//this 表示当前标签对象 原生js对象,val()是jquery方法,所以要将this封装成jquery对象
var value = $(this).val()
//获取域对象中的sex值
//加单引号使之成为一种数据类型,否则接收不到
var sex = '${student.sex}'
if(value == sex){
$(this).checked(true)
}
})
/**多选框的回显
因为在后端中我们将hobby用逗号隔开,因此此时需要根据逗号将爱好分割开
*/
/**
1、要取到域对象中的hobby字段,把每一个爱好的值分割
*/
var hobby = '${student.hobby}'
//切割 split()根据传递的参数进行字符串的分割,分割成一个数组
var hobbies = hobby.split(",");
for(var i = 0;i < hobbies.length;i++){
$([name = 'hobby']).each(function (){
//取出对应多选框标签的value的值
var value = this.value;
if(value==hobbies[i]){
this.checked(true)
}
})
}
})
</script>
<body>
<h1 align="center"> 学生编辑页面</h1>
<%--
<input type="radio"> 单选框
<input type="checkbox"> 多选框
<input type="date"> 日期选择
name 用于分组
文本输入框的name属性将作为获取数据的key
<input type="hidden" >隐藏域标签,客户端不可见,但真实存在
--%>
<form action="http://localhost:8080/managerWeb/stu?flag=update" method="post">
<input type="hidden" name="id" value="${student.id}">
<table align="center">
<tr>
<td>学生姓名:</td>
<td>
<input type="text" name="sname" value="${student.sname}">
</td>
</tr>
<tr>
<td>学生年龄:</td>
<td>
<input type="text" name="age" value="${student.age}">
</td>
</tr>
<tr>
<td>学生性别:</td>
<td>
男:<input type="radio" name="sex" value="1">
女:<input type="radio" name="sex" value="2">
</td>
</tr>
<tr>
<td>学生住址:</td>
<td>
<input type="text" name="address" value="${student.address}">
</td>
</tr>
<tr>
<td>生日:</td>
<td>
<input type="date" name="birthday" value="${student.birthday}">
</td>
</tr>
<tr>
<td>爱好:</td>
<td>
下棋:<input type="checkbox" name="hobby" value="下棋">
舞剑:<input type="checkbox" name="hobby" value="舞剑">
论道:<input type="checkbox" name="hobby" value="论道">
布阵:<input type="checkbox" name="hobby" value="布阵">
弄枪:<input type="checkbox" name="hobby" value="弄枪">
</td>
</tr>
<tr align="center">
<td colspan="10"><input type="submit" value="编辑" ></td>
</tr>
</table>
</form>
</body>
</html>
JavaScript是运行在浏览器端的脚本语言,是一门编程语言,弱类型语言,即所有的数据类型都使用一个关键字var去接收
jquery是一种前端的框架
<%—引入jquery框架—%>
//相对路径
<script src="../jquery/jquery-1.7.2.js"></script>
scr 用以引入js文件
../表示上级目录
./表示当前目录
//绝对路径
//在jsp开头写个绝对路径
<%
String path = request.getContextPath();
%>
//使用绝对路径
<script src="<%=path%>/jquery/jquery-1.7.2.js"></script>
html中可以直接写js的语法
js的语法都写在
<script></script>
标签中
var 表示变量接收的类型,可以接收任意数据类型(et 与var功能相同)
js中定义方法要使用function关键字,无返回值类型
格式:function +方法名称
所定义的方法可以在script标签内部中通过标签内的属性调用;也可以在<script>
中;若是要在<script>
标签之外某些标签的内部进行调用,就需要绑定事件,这种绑定是静态绑定。
如下图
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JavaScript</title>
<script>
function getMethod(){
}
function getMethod1(){
}
</script>
<body>
<%--给当前按钮绑定事件--%>
<%--onclick 鼠标单击事件的属性--%>
<input type="button" value="ceshi" onclick="getMethod()">
</body>
</html>
通过js获得标签对应的文本值:
用document的方法
如document.getElementById() 这里是Element,因为id是唯一的
document.getElementsByName()这里是Elements,因为name可以有多个。
<input type="text" name="name" id="name"> //文本框
var el1 = document.getElementById('name') //此时获取的是文本框的input属性
var el1 = document.getElementById('name').value //此时获取的是标签对象的文本值,即从文本框输入提交的值。
jquery底层对js的所有属性都进行了封装
使用jquery:
//原生js获取标签以及标签对应的文本值
var el1 = document.getElementById(`name`).value;
//通过jQuery框架获取
//jQuery核心对象 $
//# 是id属性选择符,#name 选择id为name的标签
var el2 = $("#name").val();
//var el2 = $("#name").val();等价于var el1 = document.getElementById('name').value;
单选框中加入checked属性,checked为true表示默认选中。