我有一个删除按钮:
我正在尝试首先查明是否已选择某个网站,如果已选择某个网站,我需要确定是否已选择了一个或多个列表项,如果是,则继续删除这些项。
我的if语句一直返回“你必须首先选择你的列表”,即使它们被选中了。
function deleteList(){
if(!siteUrl){
alert("You must first select a site");
return;
}else if (siteLists.selectedIndex == null){
alert('You must first select your list(s)');
return;
}else{
var arrList = siteLists.val();
var listIndex;
var removeConfirm = confirm("Are you sure you want to delete these lists?")
if(removeConfirm){
for(listIndex = 0; listIndex<arrList.length;listIndex++){
$().SPSservices({
operation: "DeleteList",
webUrl: siteUrl,
listName: arrList[listIndex],
completefunc: function(){
RefreshSiteList(siteUrl);
alert("Selected lists have been deleted");
}
});
}
}
}
}
HTML
<select id="web_siteLists" style="width:150px;height:150px;" multiple="multiple">
<option value="{041D004F-3BD7-41C2-BE02-F166A6970FDA}">Announcements</option>
<option value="{92E428BF-6F94-47D5-B9EF-446F62827749}">Calendar</option>
<option value="{F8F92E1D-4CF0-4E80-B037-1867BD8A35B2}">Links</option>
<option value="{1E0BD0DF-D4A0-4C27-8F3F-5E4AB4FAFBB4}">Master Page Gallery</option>
<option value="{DF86CAA5-B365-484D-8792-9771E10768E0}">Team List 3</option>
<option value="{5FD4247D-3C54-4D9A-8F0F-E4C374D966B0}">Team List 4</option>
<option value="{E7CBEC72-7A63-414A-8F3C-18579A3FC7D7}">Team List 5</option>
</select>
答案 0 :(得分:1)
由于您在评论中指出您的变量siteLists
是jquery对象,因此您需要更改:siteLists.selectedIndex == null){
到
if(siteLists.get(0).selectedIndex == -1){
由于该对象不会定义该方法,因此为null。 .get()
将Retrieve the DOM elements matched by the jQuery object.将null更改为-1。如果您没有选择任何内容,selectedIndex
将为-1。看到这个小提琴:http://jsfiddle.net/R6YM8/
答案 1 :(得分:1)
“我试过这个,但现在没有选择任何内容时它不会返回警报”
如果未选择任何内容,selectedIndex
属性将为-1
。
因此:
if (siteLists.prop('selectedIndex') === -1) {/*nothing selected*/}