动态新增删除tbody表格行与ajax请求完成后刷新父窗口问题
获取tbody内的一行数据,包括hidden类型的数据
$("#tbody_id").find("tr").each(function(){
var tdArr = $(this).children();
var servicename = tdArr.eq(0).find("input").val();
var serviceid = tdArr.eq(0).find("input[type='hidden']").val();
var price = tdArr.eq(1).find("input").val();
var count = tdArr.eq(2).find("input").val();
var server = servicename + ":" + serviceid + ":" + price + ":" + count + ",";
serverList += server;
});
获取table中选中的复选框所在行的值
var check = $("table input[type=checkbox]:checked");
check.each(function() {//遍历选中的复选框
var row = $(this).parent("td").parent("tr");
var name = row.children().eq(1).text();
});
//获取table选中行的某列的值
$("#table_css tbody").on("click","tr",function() {
var td = $(this).find("td");
var data = td.eq(1).text();
$('#companyName',parent.document).val(company);
});
删除选中行方法
delTr = function delTr(nowTr){
$(nowTr).parent().parent().remove();
};
//动态追加内容至tbody方法
$.each(datas,function(index,value){
html += "<tr>";
html += "<td width='30%'><input readonly='readonly' type='text' name='servername_" + (trLength + index) + "' value='" + value.servicename + "'/><input type='hidden' name='serviceid_" + (trLength + index) + "' value='" + value.serviceid + "'/></td>"
html += "<td width='30%''><input type='text' name='price_" + (trLength + index) + "'/></td>"
html += "<td width='30%'><input type='text' name='count_" + (trLength + index) + "'/></td>"
html += "<td width='9%'><button class='btn btn-info' type='button' onclick='delTr(this);'>删除</button></td>"
html += "</tr>";
});
//获取父窗口的tbody元素,并动态添加行
$("#tbody_id",window.parent.document).append(html);
layer框架以open方式打开子窗口,并在子窗口关闭窗口方法 var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
刷新指定iframe页面数据,下面的示例是刷新父窗口的iframe数据
$("#iframe_id", window.parent.document).attr("src","${basePath}/order/info/index"); 为什么上面代码这样写,是因为在ajax执行完之后回调刷新父页面,window.location.href window.parent.location.href跳转的效果都不好,网上说的window.location.reload()
window.parent.location.reload()、location.reload()、self.window.opener.locaction.reload()这些方法都没有效果,暂时不明原因, 先记录于此吧。
//对tbody行输入的数据进行校验,如果不用try catch方式 直接return的话,只会跳出循环,还是会往下运行代码,故采用try catch方式
try{
$("#server_t").find("tr").each(function(){
var tdArr = $(this).children();
var servicename = tdArr.eq(0).find("input").val();
var serviceid = tdArr.eq(0).find("input[type='hidden']").val();
var price = tdArr.eq(1).find("input").val();
if(!Number(price)) {
throw("请输入正确格式的价格");
return;
}
var count = tdArr.eq(2).find("input").val();
if(!Number(count)) {
throw("请输入正确格式的次数");
return;
}
});
}catch(e) {
alert(e);
return;
}
动态新增删除tbody表格行与ajax请求完成后刷新父窗口问题的更多相关文章
- ajax请求成功后打开新窗口地址
转自:http://www.cnblogs.com/linjiqin/p/3148205.html jQuery.ajax({ "type":"post&qu ...
- ajax请求成功后打开新开窗口(window.open())被拦截的解决方法
问题:今天在做项目时需要在ajax请求成功后打开一个新的窗口,此时遇到浏览拦截了新窗口的问题,尝试在ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('clic ...
- Ajax请求URL后加随机数原理
原文:Ajax请求URL后加随机数原理 例如: $.ajax({ type: "GET", url: "login.action?ran=& ...
- ajax请求成功后新开窗口window.open()被拦截解决方法
ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢 问题: 前面开发项目时碰到一个问题,ajax 异步请求 ...
- ajax请求成功后新窗口window.open()被拦截的解决方法
ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限 ...
- 关于ajax请求数据后,数据本身的js失效的一些想法
今天遇到一个头疼的问题.我做一个左右翻页效果(客户要求能够无限翻页),所以只能动态请求数据,进行局部刷新操作. 这时候问题就出来了,当我请求翻页的时候,数据通过js填充到div里面,但这些数据,自身带 ...
- 【jquery】ajax 请求成功后新开窗口被拦截解决方法
问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以 ...
- IE9中ajax请求成功后返回值却是undefined
ie9中ajax请求一般处理程序成功后返回值始终是undefined,在网上找过很多资料,大致意思都是说前后端编码不一致造成的,但是按照资料上的方案去修改却发现根本不能解决我的问题,试过好多种方案都不 ...
- 使用jQuery通过点击它删除HTML表格行-超简单
jQuery的已成为所有时刻的最常用和最喜爱的JavaScript框架之一.它不仅不会减少在JavaScript编码简单的技术开销,而且也使您的代码的跨浏览器兼容.我已经写了许多关于jQuery教程, ...
随机推荐
- JavaScript modularity with RequireJS (from spaghetti code to ravioli code)
http://netmvc.blogspot.com/2012/11/javascript-modularity-with-requirejs.html Today I would like to d ...
- [git] 如何处理push失败的commit
在使用git及github时,遇到一个问题:commit了一个超过100M的大文件,然后在push时失败,然后就再也无法push了,本地大文件删除了,再commit,再push也还是提示有大文件提交. ...
- 解决Firefox已阻止运行早期版本Adobe Flash
解决Firefox已阻止运行早期版本Adobe Flash 类别 [随笔分类]web 解决Firefox已阻止运行早期版本Adobe Flash 最近火狐浏览器不知抽什么风, ...
- 家用路由器网络设置DMZ区
2分钟看懂DMZ区 装载 原文链接 最近看到一个名词“DMZ区”,一直充满疑问,今天对其进行了查询,理解如下: 1.DMZ是什么? 英文全名“Demilitarized Zone”,中文含义是“隔离区 ...
- linux添加新硬盘不需要重启识盘,及查看uuid
添加新物理硬盘 用ssh工具连接到服务器,执行:fdisk -l 查看磁盘,并没有新加的硬盘 fdisk -l查看硬盘及分区状态 查看主机总线号,命令:ls /sys/class/scsi_ ...
- shell 操作字符串 变量 数组
#!/bin/bash name="jack" #使用双引号拼接 #greeting="hello,"$name"!" #greeting_ ...
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第3节 Random类_9-生成指定范围的随机数
左闭右开区间
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_06 Set集合_3_HashSet集合存储数据的结构
特点就是查询速度快 jdk1.8以后,如果链表的长度超过了8位.就会把转成红黑树,也是为了提高查询的效率
- 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_06 Set集合_7_可变参数
打印出来是一个数组的地址 打印数组的长度 只要调用了add方法就会创建一各长度为0的数组 传一个10过去.就输出了数组的长度为1 传两个数字 注意事项: 特殊写法
- UI自动化之特殊处理一(iframe\句柄\鼠标键盘)
iframe\句柄\鼠标键盘是一些比较特殊的事件,需要特殊处理 目录 1.iframe 2.句柄(handle) 3.鼠标键盘 1.iframe iframe 是内嵌的网页元素,也可以说是内嵌的框架, ...