基于javascript实现listbox左右平移,javascript列表框
分类:pc28.am

本文实例讲述了JavaScript实现动态删除列表框值的方法。分享给大家供大家参考。具体如下:

JavaScript如何实现组合列表框中元素移动效果,javascript列表框中

 首先给大家说下组合框和列表框的区别:

组合框包括列表框和文本框的功能

文本框:只能输入数据

列表框:只能选择数据

组合框:既能输入数据,又能选择``

应用背景:在页面中有两个列表框,需要把其中一个列表框的元素移动到另一个列表框 。

   实现的基本思想:

  (1)编写init方法对两个列表框进行初始化;

  (2)为body添加onload事件调用init方法;

  (3)编写move(s1,s2)把s1中选中的选项移到s2;

  (4)编写moveAll(s1,s2)把s1中所有的选项都移到s2.

  (5)为按钮添加onclick事件。

javascript代码如下:

<script type="text/javascript" language="javascript">
//对下拉框信息进行初始化
function init() {
for (i = ; i < ; i  ) {
var y = document.createElement("option");//增加一个元素option
y.text = '选项'   i;
var x=document.getElementById("s");//根据ID找到列表框
x.add(y, null); //
}
}
//把选中的选项移到另一边
function move(s, s) {
var index = s.selectedIndex;
if (index == -) {
alert("没有选中值");
return;
}
s.length  ;
s.options[s.length - ].value = s.options[index].value;
s.options[s.length - ].text = s.options[index].text;//s中当前选中的值赋给s的最后一个元素
s.remove(index);//从s中移除当前元素
}
//把一边的完全移到另一边
function moveAll(s, s) {
if (s.length == ) {
alert("没有可用选择");
return;
}
s.length = s.length   s.length;
for (var i = ; i < s.length; i  ) {
s.options[s.length - s.length   i].value = s.options[i].value;
s.options[s.length - s.length   i].text = s.options[i].text;
}
s.length = ;
}
</script> 

<body>代码:

<body onload="init()">
<table>
<tr>
<td><select id="s" size= style="width:"></select></td>
<td><input type="button" name="moveToRight" value=">"
onClick="move(s,s)"> <br>
<br> <input type="button" name="moveAllToRight" value=">>"
onClick="moveAll(s,s)"> <br> <input type="button"
name="moveToLeft" value="<" onClick="move(s,s)"> <br>
<br> <input type="button" name="moveAllToLeft" value="<<"
onClick="moveAll(s,s)"></td>
<td><select id="s" name="s" size= style="width:"></select></td>
</tr>
</table>
</body>

以上内容给大家介绍了JavaScript如何实现组合列表框中元素移动效果的相关知识,希望对大家有所帮助!

 JavaScript表单编程

基于javascript实现listbox左右移动,javascriptlistbox

本文实例讲解了javascript实现listbox左右移动的详细代码,分享给大家供大家参考,具体内容如下

效果图:

图片 1

具体代码:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>listbox左右移动</title> 
</head> 

<body> 

<div style="background-color:#CCC; width:450px; height:300px; margin:150px,0,0,450px; border:1px solid"> 
  <table align="center" width="285" height="169" bgcolor="#99CCFF"> 
  <tr> 
   <td width="100"> 
    <select name="first" id="first" size="10" multiple="multiple" style="background-color:#3FC;"> 
     <option value="选项1">选项1</option> 
     <option value="选项2">选项2</option> 
     <option value="选项3">选项3</option> 
     <option value="选项4">选项4</option> 
     <option value="选项5">选项5</option> 
     <option value="选项6">选项6</option> 
     <option value="选项7">选项7</option> 
     <option value="选项8">选项8</option> 
    </select> 
   </td> 
   <td width="85" valign="middle"> 
    <input name="add" id="add" type="button" value="--->"/> 
    <input name="add_all" id="add_all" type="button" value="===>"/> 
    <input name="remove" id="remove" type="button" value="<---"/> 
    <input name="remove_all" id="remove_all" type="button" value="<==="/> 
   </td> 
   <td width="100" align="left"> 
    <select name="second" id="second" size="10" multiple="multiple" style="background-color:#3FC;"> 
    <option value="选项9">选项9</option> 
    </select> 
   </td> 
  </tr> 
  </table> 
</div> 

</body> 
<script type="text/javascript"> 
 //左移右 

  /*<input name="add" id="add" type="button" value="--->"/>*/ 
  document.getElementById("add").onclick = function add() 
  { 
   var firstSel = document.getElementById("first"); 
   var option = firstSel.getElementsByTagName("option"); 
   //javascript的数组是动态数组,长度是可以变的。 
   //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg 
   var oplength=option.length; 
   var secondSel = document.getElementById("second"); 
   for(i=0;i<oplength;i  ) 
   { 
     /* 
      selectedIndex: 该下标返回下拉列表的索引值 
      注: 如果有多个被选中的情况下,永远返回第一个选中的索引值,索引最小的那个 
         如果没有被选中的情况下,返回-1 
         selectedIndex是<select>的属性 
     */ 
     if(firstSel.selectedIndex!=-1) 
     { 
       secondSel.appendChild(option[firstSel.selectedIndex]); 
     } 
   } 

  } 

  /*<input name="add_all" id="add_all" type="button" value="===>"/>*/ 
  document.getElementById("add_all").onclick = function addAll() 
  { 
   var firstSel = document.getElementById("first"); 
   var option = firstSel.getElementsByTagName("option"); 
   //javascript的数组是动态数组,长度是可以变的。 
   //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg 
   var oplength=option.length; 
   var secondSel = document.getElementById("second"); 
   for(i=0;i<oplength;i  ) 
   { 
    /*因为javascript的数组是动态数组,长度是可以变的。所以当移走全部把数 
    组的值移走(一个一个的移走,数组长度马上-1,所以数组下标也是-1.因次我们要把每次移的是走下标为0的那个 
    数,这样才保证可以全部移走)*/ 
    secondSel.appendChild(option[0]); 
   } 
  } 

  /*双击后把option移到右边*/ 
  document.getElementById("first").ondblclick = function dblclick() 
  { 
    /*方法一*/ 
    /* 
   var firstSel = document.getElementById("first"); 
   var option = firstSel.getElementsByTagName("option"); 
   //javascript的数组是动态数组,长度是可以变的。 
   //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg 
   var oplength=option.length; 
   var secondSel = document.getElementById("second"); 
   for(i=0;i<oplength;i  ) 
   { 
      //双击可以看成:第一次点击选中,第二次点击移动 
      secondSel.appendChild(option[firstSel.selectedIndex]);   
   } 
   */ 

   /*方法二*/ 
   /* 
   this: this表示document.getElementById("first")  下拉列表 
      this.selectedIndex表示下拉列表选中的项 
   */ 
    var secondSel = document.getElementById("second"); 
    secondSel.appendChild(this[this.selectedIndex]); 
  } 




  //右移左 


  /*<input name="remove" id="remove" type="button" value="<---"/>*/ 
  document.getElementById("remove").onclick = function remove() 
  { 
   var secondSel = document.getElementById("second"); 
   var firstSel = document.getElementById("first"); 
   var option = secondSel.getElementsByTagName("option"); 
   //javascript的数组是动态数组,长度是可以变的。 
   //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg 
   var oplength=option.length; 
   for(i=0;i<oplength;i  ) 
   { 
     /* 
      selectedIndex: 该下标返回下拉列表的索引值 
      注: 如果有多个被选中的情况下,永远返回第一个选中的索引值,索引最小的那个 
         如果没有被选中的情况下,返回-1 
         selectedIndex是<select>的属性 
     */ 
     if(secondSel.selectedIndex!=-1) 
     { 
       firstSel.appendChild(option[secondSel.selectedIndex]); 
     } 
   } 

  } 

  /*<input name="remove_all" id="remove_all" type="button" value="<==="/>*/ 
  document.getElementById("remove_all").onclick = function remove_all() 
  { 
   var secondSel = document.getElementById("second"); 
   var firstSel = document.getElementById("first"); 
   var option = secondSel.getElementsByTagName("option"); 
   //javascript的数组是动态数组,长度是可以变的。 
   //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg 
   var oplength=option.length; 
   for(i=0;i<oplength;i  ) 
   { 
    /*因为javascript的数组是动态数组,长度是可以变的。所以当移走全部把数 
    组的值移走(一个一个的移走,数组长度马上-1,所以数组下标也是-1.因次我们要把每次移的是走下标为0的那个 
    数,这样才保证可以全部移走)*/ 
    firstSel.appendChild(option[0]); 
   } 
  } 

  /*双击后把option移到右边*/ 
  document.getElementById("second").ondblclick = function dblclick() 
  { 
    /*方法一*/ 
    /* 
   var secondSel = document.getElementById("second"); 
   var firstSel = document.getElementById("first"); 
   var option = secondSel.getElementsByTagName("option"); 
   //javascript的数组是动态数组,长度是可以变的。 
   //所以先取得下拉列表的长度,避免option被移走后长度变小,导致后面循环终止,出现beg 
   var oplength=option.length; 
   for(i=0;i<oplength;i  ) 
   { 
      //双击可以看成:第一次点击选中,第二次点击移动 
      firstSel.appendChild(option[secondSel.selectedIndex]);   
   } 
   */ 

   /*方法二*/ 
   /* 
   this: this表示document.getElementById("second")  下拉列表 
      this.selectedIndex表示下拉列表选中的项 
   */ 
    var firstSel = document.getElementById("first"); 
    firstSel.appendChild(this[this.selectedIndex]); 
  } 
</script> 
</html> 

代码注释很详细,希望可以帮到大家。

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

使用JavaScript 动态删除列表框中的值,实际运用中可能效果会比较复杂,这只是一个基本功能单元,很多都是在此基础上扩展而来,运行代码点击“删除”,会将列表框中的值一一删除,只保留一项数据。

您可能感兴趣的文章:

  • Javascript调用XML制作连动下拉列表框
  • JS 动态添加列表框项效果代码
  • extjs 列表框(multiselect)的动态添加列表项的方法
  • ExtJs之带图片的下拉列表框插件
  • javascript获取下拉列表框当中的文本值示例代码
  • js Select下拉列表框进行多选、移除、交换内容的具体实现方法
  • javascript对下拉列表框(select)的操作实例讲解
  • js获取下拉列表框<option>中的value和text的值示例代码
  • js操纵dom生成下拉列表框的方法
  • ExtJS中设置下拉列表框不可编辑的方法

首先给大家说下组合框和列表框的区别: 组合框包括列表框和文本框的功能...

表单是Web上与用户进行交互的主要界面。则我们需要掌握如何访问用户输入的表单数据,校验用户输入的正确性显得至关重要。

您可能感兴趣的文章:

  • JS ListBox的简单功能实现代码
  • js 获取Listbox选择的值的代码
  • javascript实现listbox左右移动实现代码
  • JavaScript如何从listbox里同时删除多个项目
  • 使用javascript实现ListBox左右全选,单选,多选,全请
  • 用JavaScript实现类似于ListBox功能示例代码
  • JavaScript控制两个列表框listbox左右交换数据的方法
  • JavaScript控制listbox列表框的项目上下移动的方法
  • JavaScript列表框listbox全选和反选的实现方法

本文实例讲解了javascript实现listbox左右移动的详细代码,分享给大家供大家参考,具体内容如...

删除选项<!--form{padding:0px; margin:0px; font:14px Arial;}p{margin:0px; padding:3px;}input{margin:0px; border:1px solid #000000;}-->function RemoveOption{ var oForm = document.forms["myForm1"]; var oBox = oForm.elements[Box]; oBox.options[iNum] = null; }

♞ 对Form元素进行脚本编写

希望本文所述对大家的javascript程序设计有所帮助。

✍ 获取表单的应用

➣ 使用DOM树中定位一个元素的方法——getElementById()方法,并将表单的ID作为方法的参数;

var objForm = document.getElementById("form");

➣ 使用文档的表单集合,并且通过表单在forms集合中的位置或者通过其name属性; 

var objForm = document.forms[0]; //不用下标就是获得表单集合
var objForm = document.forms["name"];//得到名为name的表单

✍ 获取表单的字段

每个表单字段都包含在表单的elements集合中,我们可以通过使用表单元素的name属性或者它在集合的位置,访问集合中的不同字段;

➣ 通过它在集合的位置访问集合中字段;

var temp=oform.elements[0]; //得到表单第一个字段。

➣ 使用表单元素的name属性访问集合中字段;

对该方法传入name属性的字符串;

var temp=oform.elements["text"]; //得到名为text1的字段。

每个表单字段称为表单本事的一个属性,可以直接通过其名称访;

var temp=oform.textbox1; //得到名为textbox1的字段。

如果名称中间有空格,可以用中括号代替;

var temp=oform["text box 1"]; //得到名为text box 1的字段。

✍ 表单字段元素对象

➣ form表单字段元素对象的方法

方法

描述

blur()

让表单字段元素失去焦点,当前焦点移到后台

focus()

让表单字段元素获得焦点

click()

模仿用户鼠标单击该元素的过程

setCapture()

在某个表单字段元素对象上捕获当前网页文档上的鼠标事件

releaseCapture()

取消某个表单字段元素对象对当前网页文档鼠标事件的捕获设置

add()

为列表框(select)增加一个选择项(option)

➣ form表单字段元素对象的属性

属性

描述

defaultValue

设置或返回表单字段元素的默认值(初始值)

disabled

设置或返回文本输入框的disabled状态;该属性用于指示一个表单控件是否可用,一个disable控件不允许用户输入

form

返回表单字段元素所属于form表单对象

readOnly

设置或返回文本输入框的readonly状态

title

设置或返回表单字段元素title属性

value

设置或返回表单字段元素的当前取值

checked

设置或返回单选按钮、复选按钮的选中状态

➣ form表单字段元素对象的事件

事件

描述

onChange

当焦点离开文本输入框且文本输入框中的值改变时,或者改变列表框的选择结果后,产生该事件

onSelect

当单行或多行文本输入框中的文字被选择加亮后,产生该事件

onFocus

当表单字段获得焦点时,产生该事件

onBlur

当表单字段元素失去焦点时,产生该事件

✍ 表单的提交和重置

➣ 使用一个提交按钮或者模拟提交按钮的图形来提交/重置表单

<input type="submit" value="Submit"/>     //submit按钮提交表单
<input type="image" value="submit.gif"/>   //image按钮提交表单
<button type="submit">Submit</button>     //submit按钮提交表单
<input type="reset" value="Reset"/>     //reset按钮重置表单
<button type="reset">Reset</button>      //reset按钮重置表单 

➣ 使用submit()方法或者reset()方法提交/重置表单

得到表单引用后,直接调用submit()方法或者reset()方法

oForm.submit(); //oForm表单提交
oForm.reset(); //oForm表单重置

♞ 对文本框元素进行脚本编写

✍ 获取/更改文本框的值

对于标签<input/>和<textarea/>都支持同样的属性value,以获取文本框中的文本;使用value属性返回String类型的文本内容;

✍ 选择文本

两种类型的文本框都支持select()方法,该方法用于选择文本框中的所有文本。为使该方法起作用,文本框必须获得焦点。为确保文本框获得焦点,我们必须在调用select()方法之前,调用另外一个方法focus();

✍ 文本框事件

两种文本框都支持blur、focus、change和select事件。

➣ change事件——在用户改变文本框的值之后,当文本框失去焦点时触发该事件。

(PS:通过设置value属性改变文本框的值时,不触发该事件)

➣ select事件——在一个或者多个字符被选中时触发事件;不管是手动选中还是使用select()方法。

➣ blur事件——当文本框失去焦点时触发事件;

(PS:blur事件和change事件都是在文本框失去焦点后触发,但是change事件是在文本框的值被改变的情况下才会触发,如果没有改变时只触发blur事件;改变时则先触发change事件,随后再执行blur事件);

➣ focus事件——当文本框获得焦点时触发事件;

♞ 对列表框和组合框进行脚本编写

✍ 访问选项

HTML DOM将select元素中的每一项定义到一个options集合中,该集合中列出select控件中的所有option元素。

属性

描述

id

设置或返回选项的 id。

index

返回下拉列表中某个选项的索引位置。

label

设置或返回选项的标记 (仅用于选项组)。

selected

设置或返回 selected 属性的值。

text

设置或返回某个选项的纯文本值。

value

设置或返回被送往服务器的值。

✍ 添加选项

很多时候,列表框或者组合的选项数据,是来自于后台数据服务器或者其它数据文件,那么我们就不能在XHTML中指定选项,必须使用JavaScript编码动态地将数据项添加到select元素中,按照以下步骤将选项动态添加到select元素中:

Ⅰ 定义一个带三个参数的方法,这三个参数分别是要添加选项的列表值、要添加的选项的名称以及要添加的选项的值;

Ⅱ 使用DOM方法创建一个option元素,然后创建一个文本节点分配给选项的名称;

Ⅲ 设置option元素的value属性;

Ⅳ 通过appendChild()方法,将新选项添加到select元素中;

ListUtil.add = function(oList, sName, sValue){
  var option = document.creatElement("option");
  option.appendChild(document.creatTextNode(sName));
  if(arguments.length == 3){
  option.setAttribute("value",sValue);
  }
  oList.appendChild(potion);
}

✍ 删除选项

删除选项的方法有两种,一种是使用DOM提供的功能,一种是使用HTML DOM提供的功能

➣ BOM:使用options集合,将要移除的选项设置为null;

oList.options[0] = null;

➣ HTML DOM:使用select元素的remove()方法,将要删除的选项的索引传递给remove()方法;

oList.remove(0);

✍ 移动选项

使用DOM的appendChild()方法,可以从第一个列表框中把元素移动选项到第二个列表框中。如果我们传递一个文档中的一个元素到appendChild()方法,该元素就会从它的父元素中移除,并且放在指定位置。

♞ 对复选框和单选框进行脚本编写

属性/方法

描述

checked

布尔值,指示控件状态

defaultChecked

布尔值,指示页面加载时控件是否被选中

click()

模仿按钮点击,改变控件状态,对应的事件onclick

本文由pc28.am发布于pc28.am,转载请注明出处:基于javascript实现listbox左右平移,javascript列表框

上一篇:javascript表单验证大全_javascript技巧_脚本之家 下一篇:没有了
猜你喜欢
热门排行
精彩图文