Met*_*iel 2 html javascript jquery
我从一个我发现在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>
Run Code Online (Sandbox Code Playgroud)
这是在列表框之间移动元素的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;
});
});
Run Code Online (Sandbox Code Playgroud)
如您所见,代码只是根据按下的按钮确定必须附加和删除哪些选定元素.我需要检测右边的列表框("SelectRight")没有选项.例如,在开始时没有按下任何内容或用户删除所有项目.我需要一种方法来检测这个,所以我可以触发我的验证过程.
我一直在谷歌搜索没有运气!我希望你能帮助我,谢谢=)
编辑:谢谢你的回答,我发现这$("#SelectRight").is(":empty")似乎是我需要的.然而,这不是我需要的行为......每次清空列表框时我都需要启动一个事件.例如,如果我这样做:
if($("#SelectRight").is(":empty")) alert("It works?? =O");
Run Code Online (Sandbox Code Playgroud)
此警报仅在页面加载时显示,但如果我添加然后删除元素,则不会再触发.所以我想我需要添加一个事件处理程序或者什么...也许是一个JQuery .on()或者什么?
有人可以赐教吗?=)谢谢!
$("#SelectRight").is(":empty")
Run Code Online (Sandbox Code Playgroud)