大致效果如图:
JS代码如下
function moveUp(obj){
for(var i=1; i < obj.length; i++){//最上面的一个不需要移动,所以直接从i=1开始
if(obj.options[i].selected){
if(!obj.options.item(i-1).selected) {
var selText = obj.options[i].text;
var selValue = obj.options[i].value;
obj.options[i].text = obj.options[i-1].text;
obj.options[i].value = obj.options[i-1].value;
obj.options[i].selected = false;
obj.options[i-1].text = selText;
obj.options[i-1].value = selValue;
obj.options[i-1].selected=true;
}
}
}
}
function moveDown(obj){
for(var i = obj.length -2 ; i >= 0; i--){//向下移动,最后一个不需要处理,所以直接从倒数第二个开始
if(obj.options[i].selected){
if(!obj.options[i+1].selected){
var selText = obj.options[i].text;
var selValue = obj.options[i].value;
obj.options[i].text = obj.options[i+1].text;
obj.options[i].value = obj.options[i+1].value;
obj.options[i].selected = false;
obj.options[i+1].text = selText;
obj.options[i+1].value = selValue;
obj.options[i+1].selected=true;
}
}
}
}
function moveOption(obj1, obj2){
objValue = obj1.value;
if(objValue==""){
alert("请输入要添加的数据!");
return false;
}
for(var i = 0; i< obj2.options.length; i++) {
if(objValue==obj2.options[i].value){
alert("该数据已经存在!");
return false;
}
}
var opt = new Option(objValue,objValue);
opt.selected = true;
obj2.options.add(opt);
}
function delOption(obj1){
for(var i = obj1.options.length - 1 ; i >= 0 ; i--) {
if(obj1.options[i].selected){
obj1.remove(i);
}
}
}
HTML代码部分,我是用了struts2标签的select框,你可以自己修改一下
<table>
<tr>
<td valign="top">
<s:select multiple="true" name="searchSite" list="searchSite" size="5" id="searchSite" cssStyle="width:200px;"></s:select>
<br/><font color="red">为空时搜索所有网站!</font>
</td>
<td valign="top">
<input type="text" name="addSite" id="addSite" onblur="isDomain(this.value)"/><br/>
<font color="red">例如:163.com</font><br/>
<input value="添加" style="width: 70px;" type="button" onclick="moveOption(document.getElementById('addSite'),document.getElementById('searchSite'))"/>
<input value="删除" style="width: 70px;" type="button" onclick="delOption(document.getElementById('searchSite'));"/><br/>
<input value="上移" style="width: 70px;" type="button" onclick="moveUp(document.getElementById('searchSite'));"/>
<input value="下移" style="width: 70px;" type="button" onclick="moveDown(document.getElementById('searchSite'));"/>
</td>
</tr>
</table>
- 大小: 13.4 KB
分享到:
相关推荐
2. **多字段排序**:在`ORDER BY`后可列出多个字段,通过逗号隔开,先按第一个字段排序,若相同则按第二个字段,以此类推。例如,`ORDER BY column1 ASC, column2 DESC`。 3. **动态排序**:在SQL中,还可以使用`...
jQuery Autocomplete工作原理是监听输入框的`keydown`、`keyup`或`input`事件,当用户在文本框中输入字符时,它会触发一个异步请求(通常是AJAX)到服务器,将当前的输入值作为查询参数发送。服务器根据这些参数返回...
在软件开发中,组合框(ComboBox)是一种常见的界面元素,它提供了一个文本框和一个下拉列表,允许用户从列表中选择一个项目,或者在文本框中直接输入新的内容。本文档详细介绍了如何使用MFC(Microsoft Foundation ...
// 从文本框获取内容并添加到列表框 m ListBox.AddString(m TextBox.GetText()); } void CMyDialog::OnDeleteItemClick() { // 删除选定项 int index = m ListBox.GetCurSel(); if (index != LB_ERR) m ...
至于标题中提到的`DLL`,这可能是一个第三方库,如`DataGridViewAutoFilter`,它扩展了`DataGridView`的功能,提供了更丰富的筛选和排序选项。这类库通常会提供方便的API,简化开发过程。例如,`...
开发者可能通过一个表单收集用户输入,然后通过编程语言(如Java或Python)和SQL语句将这些信息插入到相应的数据库表中。 其次,“删”操作指的是从数据库中移除一条或多条记录。例如,如果用户不再需要某个联系人...
* AppendText:将一个字符串添加到文本框的末尾。 * Clear:清除文本框中的所有文本。 * Focus:设置文本框的焦点。 * Copy:将文本框中的当前选定内容复制到剪贴板上。 * Cut:将文本框中的当前选定内容移动到剪贴...
combobox标签:生成一个单选文本框和一个下拉列表框的组合。 doubleselect标签:生成一个相互关联的列表框,该标签由两个下拉选择框组成。 datetimepicker标签:生成一个日期、时间下拉列表框。 head标签:生成...
结合冒泡排序和表单标签,我们可以想象一个教学场景:一个网页教程可能包含一个交互式的冒泡排序演示,用户可以通过输入一组数字,然后通过表单提交,网页后端接收到数据后用冒泡排序算法对这些数字进行排序,并将...
在Delphi的实践中,我们可以通过以下步骤创建一个简单的应用: 1. **启动Delphi环境**并创建新工程。 2. **保存工程**到指定路径,如UntListBox.pas和ListBox.dpr。 3. **设计界面**,在窗体上放置控件,如Edit、...
01015获取在Excel主窗口中一个窗口所能占有的最大高度和宽度 01016获取当前打印机名称 01017获取MicrosoftExcel剩余内存 01018获取MicrosoftExcel的总内存 01019获取计算机被Excel占用的内存 01020改变Excel窗口大小...
在设计动态查询时,可以利用表单和控件来获取用户的查询需求,设计一个用户的查询界面,通过文本框、列表框、复选框等控件, 由用户提供查询的需求,包括输出的查询列、查询条件以及涉及的数据库对象等。 然后,将...
3. `form-elements.html` 和 `form-multiselect.html`:这两文件与表单元素相关,前者可能包含了Bootstrap的各种输入控件,如文本框、复选框、单选按钮等,而后者可能是关于多选下拉框的实现,使用了如Select2或...
2. 一对一联系:在数据库设计中,一对一联系是指一个实体(如学校)与另一个实体(如校长)之间存在一对一的关系,即每个学校只有一个校长,每个校长也只能对应一个学校。 3. 选择多个图标:在Windows操作系统中,...
例如,一个简单的INSERT语句用于添加新的光盘记录,SELECT语句用于检索光盘信息,UPDATE语句用于修改已有的记录,而DELETE语句则用于移除不再需要的记录。同时,可能还使用了JOIN操作来联接多个表,以便进行更复杂的...
通过上述步骤,我们能够构建一个交互性强且高效的双表自动查询系统。在ACCESS中,这样的设计不仅可以提高数据操作的便捷性,还能帮助用户快速找到所需信息,尤其适用于需要关联查询的业务场景。记得在实际应用中,要...
13. 获取组合框内容:组合框的内容可以通过值列表、从表或查询导入、自行键入等方式获取,但不能通过从另一组合框获取。第13题中,D选项是错误方式。 14. 创建控件:工具箱中的按钮用于创建标签控件,第14题和第1题...
在本项目中,我们关注的是一个基于Java Swing框架开发的KTV点歌系统。这个系统是作者的大学毕业设计,旨在为后续学生提供一个参考模型,帮助他们理解和完成类似的项目。Swing是Java的一个图形用户界面(GUI)工具包...
`ComboBox`的基本结构通常包含一个文本框和一个下拉按钮。用户可以在文本框中查看或输入当前选中的项,点击下拉按钮则会展开一个列表供用户浏览和选择。这个列表通常包含了多个预先定义的选项,用户可以通过鼠标点击...
对于查找功能,可以添加一个文本框让用户输入查找条件,然后在TextBox的TextChanged事件中进行筛选。以下是一个简单的示例: ```csharp textBox.TextChanged += (sender, e) => { string searchText = textBox....