确定是否在if语句中选择了任何选项

时间:2013-10-25 20:47:47

标签: javascript jquery html

我有一个删除按钮:

我正在尝试首先查明是否已选择某个网站,如果已选择某个网站,我需要确定是否已选择了一个或多个列表项,如果是,则继续删除这些项。

我的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>

2 个答案:

答案 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*/}