代码之家  ›  专栏  ›  技术社区  ›  Tony Borf

选择未选择

  •  5
  • Tony Borf  · 技术社区  · 17 年前

    我有一张有4个下拉列表的表格。所有下拉列表中的默认选择选项为“请选择”。我想在提交页面之前使用jquery确保所有下拉列表都有一个值,但是我的代码只在第一个下拉列表上有效。有人能让我一次检查所有下拉列表吗?

    function doconfirm() {
      if ($('select').val() == '') {
        alert("Please Select All Fields");
       }  
    }
    

    我肯定我错过了什么,但我想不出来。 谢谢

    4 回复  |  直到 17 年前
        1
  •  8
  •   Matthew Groves    17 年前
    
    function doconfirm() {
      if ($('select').each(function() {
        if($(this).val() == '') {
             alert("Please Select All Fields");
             return(false);
        }  
      });
    }
    
        2
  •  4
  •   karim79    17 年前

    @mgroves的方法略有变化,这是 明确地 测试至少一个选定选项,并在第一个没有选项的选项上发出警报。如果这种方法有任何优势,那么它的可读性更好(特别是因为使用.val()的目的有点模棱两可):

    function doconfirm() {
      if($('select').each(function() {
        if(!$(this).find('option:selected').length) {
             alert("Please Select All Fields");
             return(false);
        }  
      });
    }
    
        3
  •  1
  •   redsquare    17 年前

    换个角度来说,为什么不使用

    function doConfirm() {
    
        var toReturn = true;
    
        if ( $('select').filter( function(){
                return $(this).val() === ''; 
             }).length ) {
    
            toReturn = false;
            //notify user
    
        }
    
        return toReturn;
    }
    
        4
  •  0
  •   Detect    17 年前
    $('select').each(function(s){if(!this.val())...});