javascript - 向上/向下移动选项列表框 JavaScript/ASP

标签 javascript asp.net

嗨,我正在尝试学习 javascript,但我正在搞乱这个 example我发现:

function moveOptionUp(obj) {
if (!hasOptions(obj)) { return; }
    for (i = 0; i < obj.options.length; i++) {
       if (obj.options[i].selected) {
       if (i != 0 && !obj.options[i - 1].selected) {
           swapOptions(obj, i, i - 1);
           obj.options[i - 1].selected = true;
        }
     }
   }
}

我有一个列表框

<input type="button" value="Up" onclick="moveOptionUp(this.form['_lb2'])" />
<asp:ListBox ID="_lb2" name="_lb2" runat="server" Height="400px" Width="170px"/>

但是我无法让它工作...该示例使用 html 选择框。我认为问题在于将控件作为参数传递。使用 asp 控件执行此操作的正确方法是什么?

哦顺便说一句..列表框项目是动态添加的

最佳答案

要将选项向上移动一个,请将其插入为前一个选项的前一个同级选项(前提是它还不是顶部选项):

function moveUp(sel) {
  var idx = sel.selectedIndex;
  var opt;

  // Only move up if not first
  if (idx > 0) {
    opt = sel.options[idx];
    sel.insertBefore(opt, sel.options[--idx]);
  }
}

更改了测试以检查 idx > 0,因为如果未选择任何选项,selectedIndex 将为 -1。如果没有默认选择的选项并且表单被重置,则可能会发生这种情况。

编辑

示例 HTML:

<form action="">
  <select id="_lb2" name="_lb2">
    <option>0
    <option>1
    <option>2
    <option>3
  </select>
  <input type="button" value="Move Up" onclick="
    moveUp(this.form['_lb2']);
  ">
</form>

关于javascript - 向上/向下移动选项列表框 JavaScript/ASP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7143214/

相关文章:

javascript - 从哪里开始我的 Firefox 书签扩展

javascript - window.location.hash 不创建浏览器历史条目

javascript - 过滤/查找 .eq() 两个不同值的元素

asp.net - 使用 UrlRewriter.Net、ASP.NET MVC 路由进行 URL 重写或您推荐什么?

php - AJAX:返回多个变量的问题

javascript - IntelliJ 中的自定义关键字建议

javascript - 在 ASP 中仅使用 jquery 和 Web 服务从客户端上传图像

c# - 将文件写入响应后关闭弹出窗口

c# - String.Format 未格式化电话号码

c# - 将日期时间从数据表转换为特定格式的字符串 C# ASP.NET