form表单中删除、增加tr

需求:通过点击添加、删除按钮能够增加或删除一行


思路:先写出一行tr,将此tr内的html追加到容器中,实现添加功能

页面代码:

<div class="easyui-panel" title="商品信息" data-options="collapsible:true"
         style="width:99%;height:auto;padding:10px;">
        <div>
			<a href="javascript:void(0);" id="addOrderItem">
				<img src="${base}/static/scripts/component/easyui/themes/icons/edit_add.png" >
			</a>
		</div> 
        <table class="form-table-container">
            <tbody>
            <tr>
                <td class="form-table-td-one">商品编码:</td>
                <td>
                    <select id="skuIdOptions" name="productSku" class="common-select-style-one">
                        <option value="">--请选择--</option>
                    </select>
                </td>
                <td class="form-table-td-one">商品数量:</td>
                <td>
                	<input type="text" name="buyNumber" class="common-input-style-one" required="true" validtype="length[1,30]">
                	<input type="hidden" name="orderNO" value="" >
                	<div style="display:inline;">
				<a href="javascript:void(0);" class="delOrderItem" οnclick="gotoDelTr(this);">
					<img src="${base}/static/scripts/component/easyui/themes/icons/edit_remove.png" >
				</a>
			</div> 
                </td>
            </tr>
            </tbody>
        </table>
    </div>

js代码:除了第一行元素外,剩下的元素都是在页面加载完后通过js生成的,无法通过.click方法添加点击事件,可通过on方法将事件绑定到父元素table上。但这样无法确定当前点击的是哪一个删除元素,无法实现删除功能。在页面中添加onclick,传入this(当前dom对象a元素)。通过$(domObj).parents("tr").remove();删除其所在的tr行。

//按钮点击增加input行
    $("#addOrderItem").click(function(){
    	gotoAddTr();
    });
    //按钮点击删除input行
//    $(".delOrderItem").click(function(){
//    	alert(22);
//    	gotoDelTr();
//    });
//    $("table").on("click",".delOrderItem",function(){
//    	alert(22);
//    	gotoDelTr();
//    });

//增加tr
function gotoAddTr(){
	//var html = $("form table tbody tr:first").html();
	//通过dom元素的outerHTML属性获取包括该元素在内的html内容
	var html = $("form table tbody tr:first").prop("outerHTML");
	$("form table tbody").append(html);
}
//删除tr
function gotoDelTr(domObj){
	//通过当前dom对象找到父元素tr
	console.log(1111);
	$(domObj).parents("tr").remove();
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现ajax提交form表单实现根据时间搜索订单,可以按照以下步骤进行: 1. 在前端页面编写一个表单,包含开始时间和结束时间的输入框,以及一个提交按钮。 2. 使用JavaScript获取表单的数据,将其封装成一个对象。 3. 使用ajax发送POST请求,将表单数据作为请求参数发送到后端。 4. 在后端接收到请求后,根据表单数据查询数据库,将查询结果返回给前端。 5. 前端接收到响应后,使用JavaScript将查询结果渲染到页面上。 下面是一个简单的示例代码: 前端页面: ``` <form id="search-form"> 开始时间:<input type="text" name="start_time" id="start-time"> 结束时间:<input type="text" name="end_time" id="end-time"> <button type="submit">搜索</button> </form> <div id="search-result"></div> <script> var searchForm = document.getElementById('search-form'); var searchResult = document.getElementById('search-result'); searchForm.addEventListener('submit', function(event) { event.preventDefault(); // 阻止表单默认提交行为 var startTime = document.getElementById('start-time').value; var endTime = document.getElementById('end-time').value; var formData = { start_time: startTime, end_time: endTime }; // 发送ajax请求 var xhr = new XMLHttpRequest(); xhr.open('POST', '/search'); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE) { if (xhr.status === 200) { // 查询成功,渲染查询结果 searchResult.innerHTML = xhr.responseText; } else { // 查询失败,提示错误信息 searchResult.innerHTML = '查询失败:' + xhr.statusText; } } }; xhr.send(JSON.stringify(formData)); }); </script> ``` 后端Java代码: ``` @Controller public class OrderController { @Autowired private OrderService orderService; @PostMapping("/search") @ResponseBody public String searchOrders(@RequestBody Map<String, String> form) { String startTime = form.get("start_time"); String endTime = form.get("end_time"); List<Order> orders = orderService.searchOrders(startTime, endTime); // 将查询结果渲染成HTML代码 StringBuilder sb = new StringBuilder(); sb.append("<table>"); sb.append("<tr><th>订单号</th><th>下单时间</th><th>金额</th></tr>"); for (Order order : orders) { sb.append("<tr>"); sb.append("<td>").append(order.getOrderNo()).append("</td>"); sb.append("<td>").append(order.getCreateTime()).append("</td>"); sb.append("<td>").append(order.getAmount()).append("</td>"); sb.append("</tr>"); } sb.append("</table>"); return sb.toString(); } } ``` 注意事项: 1. 在发送ajax请求时,需要设置请求头Content-Type为application/json,以便后端能够正确解析请求参数。 2. 在后端接收请求参数时,需要使用@RequestBody注解将请求参数映射为Map<String, String>类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值