js使用append增加勾选框
时间: 2023-07-20 10:16:11 浏览: 162
要使用JavaScript中的append方法动态添加勾选框,可以先创建一个input元素,然后将其添加到父元素中。例如:
HTML代码:
```
<div id="checkboxes">
<label><input type="checkbox" name="checkbox1" value="checkbox1"> 勾选框1</label>
</div>
```
JavaScript代码:
```
// 找到父元素
var checkboxes = document.getElementById("checkboxes");
// 创建新的勾选框元素
var checkbox2 = document.createElement("input");
checkbox2.type = "checkbox";
checkbox2.name = "checkbox2";
checkbox2.value = "checkbox2";
// 创建新的label元素
var label2 = document.createElement("label");
label2.appendChild(checkbox2);
label2.appendChild(document.createTextNode(" 勾选框2"));
// 将新的勾选框元素添加到父元素中
checkboxes.appendChild(label2);
```
这样就会在原有的勾选框下方添加一个新的勾选框。可以根据需要修改新勾选框的属性和文本。
相关问题
python fastapi html页面显示一行空白表格和行勾选项,页面有增加按钮,点击,页面增加一行空白表格,点击删除按钮,删除页面勾选的行,点击保存按钮,可以保存页面每一行表格的数据并发送给服务器
在Python FastAPI项目中,要创建这样的HTML页面功能,你可以使用Flask模板引擎(如Jinja2)配合FastAPI。首先,你需要安装必要的库:
```bash
pip install fastapi uvicorn jinja2
```
然后,你可以设置一个基本的路由,返回包含动态表格的HTML模板:
```python
from fastapi import FastAPI, Request
from fastapi.responses import HTMLResponse
from pydantic import BaseModel
app = FastAPI()
# 假设我们有一个简单的模型来存储表格数据
class TableData(BaseModel):
row_id: int
checkbox: bool
@app.get("/table")
async def table(request: Request):
data = [] # 初始数据,可以在这里从数据库获取
return HTMLResponse(content=render_template('table.html', data=data), status_code=200)
```
在`templates`文件夹下创建一个名为`table.html`的文件,内容如下:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Dynamic Table</title>
</head>
<body>
<table id="dynamicTable">
{% for item in data %}
<tr>
<td><input type="checkbox" id="{{ loop.index }}" name="checkboxes[]"></td>
<td>{{ loop.index }}</td> <!-- 这里可以显示其他列 -->
</tr>
{% endfor %}
</table>
<button id="addRow">Add Row</button>
<button id="deleteSelected">Delete Selected</button>
<button id="saveChanges">Save Changes</button>
<script>
// JavaScript部分,这里可以使用jQuery或者其他库来操作DOM和处理事件
document.getElementById("addRow").addEventListener("click", function() {
// 添加新行...
});
document.getElementById("deleteSelected").addEventListener("click", function() {
// 验证勾选项,删除选定行...
});
document.getElementById("saveChanges").addEventListener("click", async function() {
const checkboxes = document.querySelectorAll('input[type="checkbox"]:checked');
const formData = new FormData();
checkboxes.forEach(function(checkbox) {
formData.append(`row_id_${checkbox.id}`, checkbox.checked ? 'true' : 'false');
});
await fetch('/submit_data', {
method: 'POST',
body: formData,
headers: { 'Content-Type': 'multipart/form-data' }
});
// 清空已选择项...
});
</script>
</body>
</html>
```
这个例子展示了如何渲染基础的HTML表格,并添加了按钮用于动态增删以及提交数据到服务器。你需要根据实际需求调整JavaScript部分,例如处理表单提交、验证等。
页面中包括一个搜索栏和一个表格。搜索栏包括商品Id(精确查询)和商品名称(模糊查询)两个输入框,以及一个搜索商品按钮。表格中包括全选/全不选的复选框、商品id、商品类别、类别名称和操作(删除),以及最下方的批量删除按钮。 在数据库中,有一个product表,包括pid、pname、pimage、shop_price四个字段,以及一个category表,包括cid和cname两个字段。在页面中,勾选复选框后,下方会显示商品Id、商品图片和商品价格。写完代码
好的,以下是Java页面搜索栏和表格的代码实现,供您参考:
HTML代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>商品管理系统</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--引入Bootstrap样式文件-->
<link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!--引入jQuery库文件-->
<script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<!--引入Bootstrap JavaScript文件-->
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<!--自定义样式-->
<style>
.table th, .table td {
text-align: center;
}
#result {
margin-top: 20px;
}
#result img {
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div class="container">
<h2>商品管理系统</h2>
<div class="row">
<!--搜索栏-->
<div class="col-md-6">
<div class="form-inline">
<div class="form-group">
<label for="pid">商品Id:</label>
<input type="text" class="form-control" id="pid">
</div>
<div class="form-group">
<label for="pname">商品名称:</label>
<input type="text" class="form-control" id="pname">
</div>
<button type="button" class="btn btn-primary" id="search">搜索商品</button>
</div>
</div>
<!--批量删除按钮-->
<div class="col-md-6">
<div class="form-inline pull-right">
<button type="button" class="btn btn-danger" id="deleteAll">批量删除</button>
</div>
</div>
</div>
<!--表格-->
<table class="table table-bordered table-hover">
<thead>
<tr>
<th><input type="checkbox" id="selectAll"></th>
<th>商品Id</th>
<th>商品类别</th>
<th>类别名称</th>
<th>操作</th>
</tr>
</thead>
<tbody id="tbody">
</tbody>
</table>
<!--搜索结果-->
<div id="result">
<div class="form-inline">
<div class="form-group">
<label for="selectedPid">商品Id:</label>
<input type="text" class="form-control" id="selectedPid" readonly>
</div>
<div class="form-group">
<label for="selectedImg">商品图片:</label>
<img id="selectedImg">
</div>
<div class="form-group">
<label for="selectedPrice">商品价格:</label>
<input type="text" class="form-control" id="selectedPrice" readonly>
</div>
</div>
</div>
</div>
<!--自定义JavaScript-->
<script>
$(function(){
//全选/全不选
$("#selectAll").click(function(){
var isChecked = $(this).prop("checked");
$("input[name='pids']").prop("checked", isChecked);
});
//搜索商品
$("#search").click(function(){
var pid = $("#pid").val();
var pname = $("#pname").val();
$.ajax({
url: "search",
type: "post",
dataType: "json",
data: {"pid": pid, "pname": pname},
success: function(data){
$("#tbody").empty();
$.each(data, function(index, item){
$("#tbody").append("<tr>" +
"<td><input type='checkbox' name='pids' value='" + item.pid + "'></td>" +
"<td>" + item.pid + "</td>" +
"<td>" + item.cname + "</td>" +
"<td>" + item.cname + "</td>" +
"<td><button type='button' class='btn btn-danger btn-sm delete'>删除</button></td>" +
"</tr>");
});
}
});
});
//删除商品
$("#tbody").on("click", ".delete", function(){
var tr = $(this).parents("tr");
var pid = tr.find("td:eq(1)").text();
$.ajax({
url: "delete",
type: "post",
dataType: "json",
data: {"pid": pid},
success: function(data){
if(data == true){
tr.remove();
alert("删除成功!");
}else{
alert("删除失败!");
}
}
});
});
//批量删除
$("#deleteAll").click(function(){
var pids = [];
$("input[name='pids']:checked").each(function(){
pids.push($(this).val());
});
if(pids.length > 0){
if(confirm("确定要删除这" + pids.length + "个商品吗?")){
$.ajax({
url: "deleteAll",
type: "post",
dataType: "json",
traditional: true,
data: {"pids": pids},
success: function(data){
if(data == true){
$("input[name='pids']:checked").each(function(){
$(this).parents("tr").remove();
});
alert("删除成功!");
}else{
alert("删除失败!");
}
}
});
}
}else{
alert("请选择要删除的商品!");
}
});
//显示选中商品的详细信息
$("#tbody").on("click", "input[name='pids']", function(){
if($(this).prop("checked")){
var pid = $(this).val();
$.ajax({
url: "getInfo",
type: "post",
dataType: "json",
data: {"pid": pid},
success: function(data){
$("#selectedPid").val(data.pid);
$("#selectedImg").attr("src", data.pimage);
$("#selectedPrice").val(data.shop_price);
}
});
}else{
$("#selectedPid").val("");
$("#selectedImg").attr("src", "");
$("#selectedPrice").val("");
}
});
});
</script>
</body>
</html>
```
Java代码:
```java
package com.example.demo.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.example.demo.pojo.Product;
import com.example.demo.service.ProductService;
@Controller
public class ProductController {
@Autowired
private ProductService productService;
//搜索商品
@RequestMapping(value="/search", method=RequestMethod.POST)
@ResponseBody
public List<Product> search(@RequestParam(defaultValue="") String pid, @RequestParam(defaultValue="") String pname){
return productService.search(pid, pname);
}
//删除商品
@RequestMapping(value="/delete", method=RequestMethod.POST)
@ResponseBody
public Boolean delete(String pid){
return productService.delete(pid);
}
//批量删除
@RequestMapping(value="/deleteAll", method=RequestMethod.POST)
@ResponseBody
public Boolean deleteAll(String[] pids){
return productService.deleteAll(pids);
}
//获取商品详细信息
@RequestMapping(value="/getInfo", method=RequestMethod.POST)
@ResponseBody
public Product getInfo(String pid){
return productService.getInfo(pid);
}
}
```
Service代码:
```java
package com.example.demo.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.demo.mapper.ProductMapper;
import com.example.demo.pojo.Product;
@Service
public class ProductService {
@Autowired
private ProductMapper productMapper;
//搜索商品
public List<Product> search(String pid, String pname){
return productMapper.search(pid, pname);
}
//删除商品
public Boolean delete(String pid){
int result = productMapper.delete(pid);
if(result > 0){
return true;
}else{
return false;
}
}
//批量删除
public Boolean deleteAll(String[] pids){
int result = productMapper.deleteAll(pids);
if(result == pids.length){
return true;
}else{
return false;
}
}
//获取商品详细信息
public Product getInfo(String pid){
return productMapper.getInfo(pid);
}
}
```
Mapper代码:
```java
package com.example.demo.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.example.demo.pojo.Product;
@Mapper
public interface ProductMapper {
//搜索商品
List<Product> search(@Param("pid") String pid, @Param("pname") String pname);
//删除商品
int delete(String pid);
//批量删除
int deleteAll(String[] pids);
//获取商品详细信息
Product getInfo(String pid);
}
```
以上代码实现了Java页面搜索栏和表格的功能,包括搜索商品、删除商品、批量删除、获取商品详细信息等。希望对您有所帮助。
阅读全文