在使用jQuery实现把一个select框中选中内容移到另一个select框中功能时遇到了一个问题,就是点击按钮时内容可以到另一个select框中,但是到了另一个select框中的内容却很快闪退回原来的select框中,代码如下:

                 <select class="select1" name="select1" multiple="multiple">
                    <option value="广东">广东</option>
                    <option value="广西">广西</option>
                    <option value="上海">上海</option>
                    <option value="桂林">桂林</option>
                    <option value="广州">广州</option>
                    <option value="肇庆">肇庆</option>
                    <option value="佛山">佛山</option>
                </select>
                <select class="select2" name="select2" multiple="multiple"></select>
                <div class="selectBtn">
                    <button class="add">选中添加到右边</button>
                    <button class="addAll">全选添加到右边</button>
                </div>
                <div class="selectBtn">
                    <button class="remove">选中删除到左边</button>
                    <button class="removeAll">全选删除到左边</button>
                </div>

jQuery代码:

$(".add").click(function() { //左→右
        var $option = $(".select1 option:selected");
        $add.appendTo(".select2");
    });
    $('.addAll').click(function() { //全选左→右
        var $option = $(".select1 option");
        $option.appendTo(".select2");
    });
    $(".remove").click(function() {//右→左
        var $option = $(".select2 option:selected");
        $option.appendTo(".select1");
    });
    $(".removeAll").click(function() { //全选右→左
        var $option = $(".select2 option");
        $option.appendTo(".select1");
    });

 

开始一直以为是select框和js的代码问题,所以思索了很久,也研究了很久select框和js的代码还是没发现问题所在。后来再看回html代码想想有没有可能是因为使用button的问题,后来把button改为了span才解决了问题。至此又重新去学习了解button标签。

原来是因为button除了在IE浏览器的默认类型type是“button”而在其他浏览器中(包括w3c规范)的默认类型type都是“submit”。所以我们应该始终为按钮button规定type属性。

修正后的html代码:

               <select class="select1" name="select1" multiple="multiple">
                    <option value="广东">广东</option>
                    <option value="广西">广西</option>
                    <option value="上海">上海</option>
                    <option value="桂林">桂林</option>
                    <option value="广州">广州</option>
                    <option value="肇庆">肇庆</option>
                    <option value="佛山">佛山</option>
                </select>
                <select class="select2" name="select2" multiple="multiple"></select>
                <div class="selectBtn">
                    <span class="add">选中添加到右边</span>
                    <span class="addAll">全选添加到右边</span>
                </div>
                <div class="selectBtn">
                    <button type="button" class="remove">选中删除到左边</button>
                    <button type="button" class="removeAll">全选删除到左边</button>
                </div>

这同时也让我再次深深地感受到编码规范和基础的重要性,路漫漫其修远兮,吾将上下而求索。

下拉框——把一个select框中选中内容移到另一个select框中遇到的问题的更多相关文章

  1. Path,Files巩固,题目:从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中

    这个题目用传统的File,InputStream可以做,但是如果用Files,Path类做,虽然思路上会困难一些,但是代码简洁了很多,以下是代码: import java.io.IOException ...

  2. C++将一个vector中的内容复制到另一个vector结尾

    在使用vector容器的时候,需要将一个vector中的内容复制到另一个vector结尾,如何实现呢? 使用vector的insert方法 template <class InputIterat ...

  3. Java 把一个文本文档的内容复制到另一个文本文档

    src.txt放在工程目录下,dest.txt可创建,也可不创建.一旦运行程序,如果dest.txt不存在,将自行创建这个文本文档,再将src.txt中的内容复制到dest.txt import ja ...

  4. 背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容

    [源码下载] 背水一战 Windows 10 (65) - 控件(WebView): 对 WebView 中的内容截图, 通过 Share Contract 分享 WebView 中的被选中的内容 作 ...

  5. EasyUI-combotree 下拉树 数据回显时默认选中

    组合树(combotree)把选择控件和下拉树结合起来.它与组合框(combobox)相似,不同的是把列表替换成树组件.组合树(combotree)支持带有用于多选的树状态复选框的树. 依赖 comb ...

  6. java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  7. 刷新各ifream当前页,下拉项改变触发事件js,给选中项加背景色js

    <script type="text/javascript" language="javascript"> //刷新框架各页面 function r ...

  8. java中使用IO流将以文件中的内容去取到指定的文件中

    public class Demo12 { public static void main(String[] args) throws IOException { File file=new File ...

  9. CSS自定义select下拉选择框(不用其他标签模拟)

    今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...

随机推荐

  1. HDOJ1253 胜利大逃亡 BFS

    胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  2. [待解决问题] 启动不了Android工程

    在使用 AudioInputStream sample = AudioSystem.getAudioInputStream(voiceSampleFile); 调用javax.sound.sample ...

  3. pecl/mongo is already installed

    sw-engine-cgi PHP MongoDB database drivermongodb database driver,数据库驱动;

  4. JSP路径的问题

    JSP因为是客户端使用的路径,所以完全可以使用全路径形式 那么在JSP里面使用路径的方式有两种,超链接或者form 当我们在MyEclipse中新建JSP时,可以发现有下面 <%@ page l ...

  5. LogMiner学习笔记

    本文是个实战,没有讲太多理论的东西,如需详细理解Oracle LogMiner,请移步:LogMiner详细讲解 首先介绍一下我的oracle环境: 第一步: 确定LogMiner已经安装. 安装Lo ...

  6. 由 argv引出的main参数 分类: C/C++ 2014-11-08 18:00 154人阅读 评论(0) 收藏

    我们经常用的main函数都是不带参数的.因此main 后的括号都是空括号.实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数.C语言规定main函数的参数只能有两个, 习惯上这 ...

  7. thinkphp 统计某个字段不重复数 总数

    $this->batch->count('DISTINCT intobatch');

  8. Readprocessmemory使用方法

    函数功能:该函数从指定的进程中读入内存信息,被读取的区域必须具有訪问权限. 函数原型:BOOL ReadProcessMemory(HANDLE hProcess,LPCVOID lpBaseAddr ...

  9. IO之流程与buffer 图

    http://blog.chinaunix.net/uid-29075379-id-3944364.html

  10. WCF - 契约

    契约就是双方或多方就某个问题达成的一种的共识  服务提供者通过契约的形式将服务公布出来 服务消费者根据契约来消费 这样通过契约这个中间者就可以规范服务提供的内容 而服务消费者也可以根据契约来使用服务端 ...