题目
一、产品搜索页面
打开“考试文件夹”中的input.html,完成以下步骤:
注意:本题仅能在input.html的<style>和<script>标签中新增样式或JavaScript代码;不可改动HTML的标签和内容,亦不可在标签中新增id、class或style属性。
已有一个产品录入界面input.html,采用div+css布局,请按要求新增样式表美化界面。
(1)为产品名称所在的div添加样式属性,使得产品名称保持在文本框的左边;
(2)调整产品名称所在div的宽度和间距,使得产品名称文字右边缘到浏览器左边界的距离为100px;再使产品名称文字到右边文本框的间距为10px;
(3)调整录入按钮的宽度,使其右边刚好与文本框的右边齐平。
2、数据验证约束:(10分)
(1)点击“录入”按钮后执行数据验证;
(2)产品名称必须输入;
(3)产品名称中不能有数字;
(3)如果验证未通过则将错误消息填充至id为error的div中,并将错误消息以红色(#ff0000)显示;
(4)如果全部验证通过,则跳转至产品主页面product.html。
二、产品主界面
打开“考试文件夹”中的product.html,完成以下步骤:
1、前后端数据交互:点击页面中“搜索”按钮向后端发起请求
(1)接口地址:
(2)接口调用方式:post
(3)提交参数:name
(4)输入产品名称“电脑”并点击搜索,服务器将返回JSON数据
服务端返回数据格式:(请粘贴在下方)
3、界面设计和数据填充(如下图所示)
(1)遍历JSON中的所有的产品,构造表格HTML代码,并填充至id为product的div中。
(2)将数据放入一个四列表格中,第一行单元格为表头,height设为30px,后续行为数据,height设为100px;
(3)所有单元格都设置为垂直居中和水平居中;
(4)第一列显示一张图片,高宽各为100px,图片文件名为JSON中的image属性值,完整图片链接为:(4分)
http://43.136.217.18:8081/img/图片文件名
(5)第二列显示品牌,取值为JSON中的brand属性值
(6)第三列显示型号链接,链接文本取值为JSON中的model属性值,链接的中的图片文件名为JSON中的image属性值,完整链接代码为:
<a href="http://43.136.217.18:8081/img/图片文件名">型号</a>
链接要求点击后在新页面打开;
(7)第四列显示价格,取值为JSON中的price属性值。
3、界面美化
(1)在<style>中添加内嵌样式表,为型号链接添加样式,将链接颜色设置为#00ff00,鼠标移动上去变为#ff0000;
(2)使用样式表表或表格属性,使表格第四列背景色变为#ffffd0。
(3)表格应该具备框线
代码
input.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>产品录入</title>
<link href="css/input.css" rel="stylesheet" type="text/css" />
<style>
#search div:nth-child(1){
float: left;
width: 100px;
margin-right: 10px;
text-align: right;
}
#submit input{
width: 268px;
margin-top: 10px;
}
#error{
color: #ff0000;
}
</style>
<script src="js/jquery-3.1.1.min.js"></script>
<script>
$().ready(function (){
$("#submit input").click(function (){
//执行验证
var prodName = $("#search div:nth-child(2) input").val();
var errorMsg = "";
if(prodName == ""){
errorMsg = "产品名称必须输入(不能为空)"
}
else if(/\d/.test(prodName)){
errorMsg = "产品名称不能有数字"
}
if(errorMsg != ""){
$("#error").text(errorMsg)
}
else{
document.location.href = "product.html"
}
})
})
</script>
</head>
<body>
<div id="search">
<div>产品名称</div>
<div><input type="text" placeholder="请输入产品名称"></div>
</div>
<div id="error"></div>
<div id="submit"><input type="button" value="录入"></div>
</body>
</html>
product.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>产品</title>
<style>
table{
width: 550px;
/*设置边框*/
border:1px solid #000;
/*为表格设置合并边框模型*/
border-collapse:collapse;
}
th{
height: 30px;
/*把文本排列到中间*/
text-align: center;
/*把此元素放置在父元素的中部。*/
vertical-align:middle;
border:1px solid #000;
}
td{
height: 100px;
text-align: center;
vertical-align: middle;
border: 1px solid #000;
}
img{
height: 100px;
width: 100px;
}
a{
color: #0ff000;
}
a:hover{
color:#ff0000;
}
tr th:nth-child(4){
background-color: #ffffd0;
}
tr td:nth-child(4){
background-color: #ffffd0;
}
tr th:nth-child(1){
width: 100px;
}
tr th:nth-child(2){
width: 150px;
}
tr th:nth-child(3){
width: 150px;
}
tr th:nth-child(4){
width: 150px;
}
</style>
<script src="js/jquery-3.1.1.min.js"></script>
<script>
$().ready(function (){
$("#search").click(function (){
$.ajax({
url:"http://43.136.217.18:8081/getProduct",
data:{name:$("#product").val()},
type:"post",
dataType:"JSON",//大小写无所谓
success:function (jsonData){
//json对象转成字符串并打印出来
// document.write(JSON.stringify(jsonData));
//构造html表格
var html = "<table>";
// 表示空格 <tr> 定义表格的行 <th> 定义表格的表头 <td> 定义表格单元
html += "<tr><th> </th><th>品牌</th><th>型号</th><th>价格</th></tr>"
for(var i in jsonData.data){//这里的i是下标,不是元素
var item = jsonData.data[i];
html += "<tr>";
html += "<td><img src='http://43.136.217.18:8081/img/"+item.image+"'></td>"
html += "<td>" + item.brand + "</td>";
html += "<td><a href='http://43.136.217.18:8081/img/"+item.image+"'>" + item.model + "</a></td>";
html += "<td>" + item.price + "</td>";
html += "</tr>";
}
html += "</table>";
//将html渲染进去
$("div:last-child").html(html);
}
// error:function (){
//
// }
})
})
})
</script>
</head>
<body>
<div><input type="text" id="product" placeholder="请输入产品名称"> <input type="button" id="search" value="搜索"></div>
<div id="product1"></div>
</body>
</html>