javascript - 检测列表框是否为空(没有选项)

标签 javascript jquery html

我从一个在 Internet 上发现有用的示例中获得了这段代码。它使用两个列表框,一个在左侧,另一个在右侧,并将左侧的元素传递给右侧的元素,反之亦然。这是带有选项的选择的 HTML:

<select id="SelectLeft" multiple="multiple">
 <option value="1">Stack Overflow</option>
 <option value="2">Server Fault</option>
 <option value="3">Ask Ubuntu</option>
 <option value="4">Super User</option>
</select>
<button id="MoveRight"> >> </button>
<button id="MoveLeft"> << </button>
<select id="SelectRight" multiple="multiple"></select>

这是在列表框之间移动元素的 JavaScript:

$(function() {
 $("#MoveRight,#MoveLeft").click(function(event) {
  var id = $(event.target).attr("id");
  var selectFrom = id == "MoveRight" ? "#SelectLeft" : "#SelectRight";
  var moveTo = id == "MoveRight" ? "#SelectRight" : "#SelectLeft";
  var selectedItems = $(selectFrom + " :selected").toArray();
  $(moveTo).append(selectedItems);
   selectedItems.remove;
  });
});

如您所见,代码只是根据按下的按钮确定必须附加和删除哪些选定元素。我需要检测右侧的列表框(“SelectRight”)何时没有选项。例如,在一开始没有按下任何内容或用户删除所有项目时。

我需要一种方法来检测这一点,以便我可以触发我拥有的验证过程。

编辑

感谢您的回答,我发现 $("#SelectRight").is(":empty") 似乎是我所需要的。但是,这不是我需要的行为。每次清空列表框时,我都需要启动一个事件。例如,如果我这样做:

if($("#SelectRight").is(":empty")) alert("It works?? =O");

此警报仅在页面加载时显示,但如果我添加然后删除该元素,它不会再触发。所以我想我需要添加一个事件处理程序或其他东西。也许是 JQuery .on() 之类的东西??

最佳答案

$("#SelectRight").is(":empty")

关于javascript - 检测列表框是否为空(没有选项),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10656595/

相关文章:

javascript - 可能会与 busboy 一起发出错误?

javascript。具有生成 ID 的元素标签

php - 两条验证消息都出现在 javascript 和 php 上

jquery - 为什么有些网站使用带有 $j 而不是 $ 的 jquery?

javascript - 为什么 jQuery .on( 'click' , foo ) 在页面加载时而不是在单击时运行该函数?

javascript - 单击时更新超链接

html - 在表单中创建可选择的图标

jquery - 将一个 html 页面覆盖在另一个页面上

javascript - jQuery 验证 equalTo 无法比较两个电子邮件地址

javascript - 我试图获得使用返回函数的附加值,但没有获得 |你能帮我看看我到底做错了什么吗?