Chinaunix首页 | 论坛 | 博客
  • 博客访问: 423270
  • 博文数量: 155
  • 博客积分: 2590
  • 博客等级: 少校
  • 技术积分: 2161
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-25 09:33
文章分类

全部博文(155)

文章存档

2015年(1)

2014年(2)

2013年(55)

2012年(97)

分类: 系统运维

2012-12-26 11:15:04

有多个选项删除ListBox中使用JavaScript的要求。用户可以选择多个项目,从一个ListBox。一旦按下删除按钮,删除所有从ComboBox中选定的值。
 
现在对这个问题的最直观的解决方案将遍历每个选项从ListBox中删除它,如果它被选中。因此,一会写下面这段HTML和的。
 
的HTML
定义一个id简单的列表框lsbox和两个按钮,删除和重置。
    
        
            India
            United States
            China
            Italy
            Germany
            Canada
            France
            United Kingdom
        
    
    
        Delete
        Reset
    


下面是JavaScript代码。
 
(不正确)的JavaScript

function listbox_remove(sourceID) {
 
    //get the listbox object from id.
    var src = document.getElementById(sourceID);
 
    //iterate through each option of the listbox
    for(var count = 0; count < src.options.length; count--) {
         //if the option is selected, delete the option
        if(src.options[count].selected == true) {
 
                try {
                         src.remove(count, null);
                        
                 } catch(error) {
                        
                        src.remove(count);
                }
        }
    }
}

就是这样吧?等等,这不会正常工作。每次您使用src.remove()方法删除一个选项,其余选项的指数将下降1。所以,如果你选择了多个值删除,这不会表现得如你预期。
 
看下面的演示:
 
演示:不正确的方法
在下面的演示中,我们用正常的方式(以上的JavaScript)删除选项。


 

因此,我们知道现在的问题。每个值被删除时,指数期权递减。所以理想的方法必须是在相反的方向遍历列表框选项。因此,我们开始与最后的选择和迭代,直到第一。
 
正确的JavaScript
注意行的循环:XX。我们遍历方向相反。

function listbox_remove(sourceID) {
 
    //get the listbox object from id.
    var src = document.getElementById(sourceID);
  
    //iterate through each option of the listbox
    for(var count= src.options.length-1; count >= 0; count--) {
 
         //if the option is selected, delete the option
        if(src.options[count].selected == true) {
  
                try {
                         src.remove(count, null);
                         
                 } catch(error) {
                         
                         src.remove(count);
                }
        }
    }
}
以下是正确的JavaScript演示。
 
演示:正确的方法
在下面的演示中,我们用正确的方法(JavaScript)的删除值。

阅读(1373) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~