多行select中的数据展示和单个删除
/**
删除多选select中 的某个值,公共方法
只适用于同级节点下只有一个select的情况
v 此按钮,this
_id,option中的value的name属性
_name,option中的text的name属性
***如果每次添加不清空options,而是在原有基础添加
pr_id:备用value,需要保留select中之前的数据时填写
pr_name:备用 name,需要保留select中之前的数据时填写
*/
function deletedOne(v,_id,_name,pr_id,pr_name){
var id="input:hidden[name="+_id+"]";
var name="input:hidden[name="+_name+"]";
var parent=$(v).parent();
var sele=parent.find("select")[0];
var options=sele.options;
if(options){
for(var i=0;i<options.length;i++){
if(options[i].selected){
options.remove(i);
}
}
var idstr="";
var namestr="";
for(var i=0;i<options.length;i++){
if(!options[i].selected){
if(idstr==""){
idstr=options[i].value;
namestr=options[i].text;
}else{
idstr=idstr+","+options[i].value;
namestr=namestr+","+options[i].text;
}
}
}
var id_node=parent.find(id)[0];
var name_node=parent.find(name)[0];
$(id_node).val(idstr);
$(name_node).val(namestr);
if(pr_id && pr_name){
var _id_node=parent.find("input:hidden[name="+pr_id+"]")[0];
var _name_node=parent.find("input:hidden[name="+pr_name+"]")[0];
$(_id_node).val(idstr);
$(_name_node).val(namestr);
}
}
}
/**
公共的多选框显示方法
v:按钮
_id:value的name属性
_name:text的name属性
****如果每次添加不清空options,而是在原有基础添加
_pr_id:备用字段value,需要保留select中之前的数据时填写
_pr_name:备用字段name,需要保留select中之前的数据时填写
*/
function showSelect(v,_id,_name,_pr_id,_pr_name){
var parent=$(v).parent();
//获取同级下的节点
var name_node=parent.find("input:hidden[name="+_name+"]")[0];
var id_node=parent.find("input:hidden[name="+_id+"]")[0];
var idstr=$(id_node).val();
var namestr=$(name_node).val();
var ids=idstr.split(",");
var names=namestr.split(",");
//两个字段不为空时进行拼接操作,并把当前数据保留至备用位置
if(_pr_id && _pr_name){
var pr_id_node=parent.find("input:hidden[name="+_pr_id+"]")[0];
var pr_name_node=parent.find("input:hidden[name="+_pr_name+"]")[0];
var pr_idstr=$(pr_id_node).val();
var pr_namestr=$(pr_name_node).val();
if(pr_idstr){
for(var i=0;i<ids.length;i++){
var index=(pr_idstr+",").indexOf(ids[i]+",");
if(index==-1){
pr_idstr=pr_idstr+","+ids[i];
pr_namestr=pr_namestr+","+names[i];
}
}
$(pr_id_node).val(pr_idstr);
$(pr_name_node).val(pr_namestr);
$(id_node).val(pr_idstr);
$(name_node).val(pr_namestr);
}else{
$(pr_id_node).val(idstr);
$(pr_name_node).val(namestr);
}
}
//把值显示出在多选框
var sele=parent.find("select")[0];
$(sele).empty();
var result_str=$(id_node).val();
if(result_str){
var result_ids=result_str.split(",");
var result_name=$(name_node).val().split(",");
for(var i=0;i<result_ids.length;i++){
var opt=new Option(result_name[i],result_ids[i]);
opt.title=result_name[i];
sele.add(opt);
}
}
}
多行select中的数据展示和单个删除的更多相关文章
- C#-WinForm-ListView-表格式展示数据、如何将数据库中的数据展示到ListView中、如何对选中的项进行修改
在展示数据库中不知道数量的数据时怎么展示最好呢?--表格 ListView - 表格形式展示数据 ListView 常用属性 HeaderStyle - "详细信息"视图中列标头的 ...
- jstl-将List中的数据展示到表格中
功能: 使用jstl将List中的数据动态展示到Jsp表格中,并实现隔行换色功能. 效果图: Jsp代码: <%@ page import="java.util.ArrayList&q ...
- delete表1条件是另一个表中的数据,多表连接删除(转)
DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 from t1 where 条件 3. ...
- MVC设计模式((javaWEB)在数据库连接池下,实现对数据库中的数据增删改查操作)
设计功能的实现: ----没有业务层,直接由Servlet调用DAO,所以也没有事务操作,所以从DAO中直接获取connection对象 ----采用MVC设计模式 ----采用到的技术 .MVC设计 ...
- 大数据技术之_25_手机APP信息统计系统项目_01_APP 数据生成模块 + 数据收集模块 + 数据处理模块框架搭建 + 业务需求处理 + 数据展示模块 +项目总结 + 问题总结
一 项目概述1.1 角色1.2 业务术语1.3 项目效果展示二 项目需求三 项目概要3.1 项目技术架构3.2 项目目录结构3.3 项目技术选型3.4 项目整体集群规划3.5 创建项目工程四 APP ...
- html中的数据岛:利用DSO和javascript在html中动态加载和浏览xml数据
1.DSO也叫做数据源对象,IE 4.0引入了DSO,在IE 5.0对DSO技术进行很大的扩展.以往如果数据是通过SQL语言对数据库进行查询得到的结果,那么就把它们存放在ADO(ActiveX Dat ...
- EF Core中如何通过实体集合属性删除从表的数据
假设在数据库中有两个表:Person表和Book表,Person和Book是一对多关系 Person表数据: Book表数据: 可以看到数据库Book表中所有的数据都属于Person表中"F ...
- php实例根据ID删除mysql表中的数据
在动态网站开发中,我们经常要根据ID删除表中的数据,例如用户删除帖子,就需要根据ID删除帖子.本文章向大家介绍php根据ID删除表中数据的实例,需要的朋友可以参考一下本文章的实例. php实例根据ID ...
- 默认情况下,不使用of子句表示在select所有的数据表中加锁(转)
Select …forupdate语句是我们经常使用手工加锁语句.通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作.同时,在多版本一致读机制的支持下,select语句也不 ...
随机推荐
- java-tip-Collections.synchronized系列生成的容器
这个系列的容器,和Vector或者HashTable之流的差不多, 区别是: Vector和HashTable是在关键方法上加synchronized关键字 而 Collections.synchro ...
- Linux下各种解压命令
本文介绍了linux下的压缩程式tar.gzip.gunzip.bzip2.bunzip2.compress .uncompress. zip. unzip.rar.unrar等程式,以及如何使用它们 ...
- VS2017在Release下编译错误C1001
在使用VS2017编译C程序时,Debug模式下编译链接执行都没有问题,但是一转到Release模式下就出现下列编译链接错误(IDE:VS2017 /VC++/MFC程序,目标平台x86+Win32位 ...
- .NET 使用HttpWebRequest 伪造Request.UrlReferrer
在网上找了许久关于伪造UrlReferrer地址资料,也许是搜索的关键词不对吧,还是内容涉及到了什么敏感的东西,愣是没找到,换成自定义UrlReferrer也找不到.经过仔细研究,原来在.NET中要自 ...
- Java 8特性
1. Java8的新特性 1.1. Lambda表达式和函数式接口 最简单的Lambda表达式可以用逗号分隔的参数列表.->符号和功能语句块来表示.示例如下: Arrays.asList( &q ...
- GitLab服务器IP地址修改
gitlab安装介绍:https://about.gitlab.com/downloads/#centos7 刚搭建好的gitlab在GitLab上新建一个项目test_gitlab,刚开始仓库地址是 ...
- HDU 2159 FATE (二维背包)
题意:中文题. 析:dp[i][j] 已经杀了 i 个怪兽,已经用了 j 体积,所能获得的最大经验值,这个和一维的差不多,只是加一维而已. 代码如下: #pragma comment(linker, ...
- 如何使用office2016发布CSDN博客
目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写 ...
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(12):XML配置自动扫描包,自动加载*.properties文件
一.XML和注解组合使用 前几篇的测试案例都是在Java类中配置,现在换一种使用方式,在XML中配置,使Spring IoC容器在启动之后自动去扫描配置的包路径,扫描加载指定路径下的propertie ...
- 领域模型驱动设计(Domain Driven Design)入门概述 -----DDD 解释
软件开发要干什么: 反映真实世界要自动化的业务流程 解决现实问题 领域Domain Domain特指软件关注的领域 在不能充分了解业务领域的情况下是不可能做出一个好的软件 领域建模 领域模型驱动设计 ...