2009-10-06 146 views
0

我有一个包含select的集合的页面,用于标识文本文件中的列。每次用户识别一列时,所选选项将从页面上的其他选择中删除。当用户识别所有列时,需要激活“提交”输入,以便用户可以转到下一步。我需要一个切肉刀的方式来确定何时所有的列已被选中。基于选择的JQuery启用按钮

<script type="text/javascript" src="https://www.repfolio.com/Scripts/jquery-1.3.2.min.js"></script> 
<script type="text/javascript" src="https://www.repfolio.com/Scripts/jquery.selectboxes.min.js"></script> 
<script type="text/javascript"> 
    $(document).ready(
     function() { 
      $('.ct').bind('change', function() { updateControls(this); }); 
     } 
    ); 
    function updateControls(c) { 
     $('.ct').unbind(); 
     if ($(c).val() == 'Reset') { 
      var opt = $(c).find("option[value!='Reset']"); 
      // if there are selects with value = '' then add this option back to them -- need to address this select too 
      if ($(".ct").filter("[value='']").size() > 0) { 
       $(".ct").filter("[value='']").each(function() { 
        $(this).append($("<option></option>").attr("value", $(opt).val()).text($(opt).text())); 
       }); 
       var options = $(".ct").filter("[value='']:first").children().clone(); 
       $(c).find('option').remove(); 
       $(c).append($(options)); 
      } else { 
       $(c).find('option').remove(); 
       $(c).append($("<option></option>").attr("value", "").text("-- Select Column -")); 
       $(c).append($("<option></option>").attr("value", $(opt).val()).text($(opt).text())); 
      }; 
     } else { 
      var s = $(c).children().filter('option[selected=true]'); 
      $(c).find('option').remove(); 
      $(".ct option[value='" + $(s).val() + "']").each(function() { $(this).remove(); }); 
      $(c).append($("<option></option>").attr("value", $($(s)).val()).text($(s).text())); 
      $(c).append($("<option></option>").attr("value", "Reset").text("Reset")); 
     } 
     $(".ct").filter("[value='']").sortOptions() 
     $('.ct').bind('change', function() { updateControls(this); }); 
     if ($('select.ct option:nth-child(3)').length) 
      $('#submit').attr('disabled', 'enabled'); 
    }; 
</script> 

这是,其使得钮的部分:

if ($('select.ct option:nth-child(3)').length) 
      $('#submit').attr('disabled', 'enabled'); 
+0

注意:被映射的文件可能包含10个或更多列,但只需标识5个。 – user135498 2009-10-06 17:07:39

+0

您可以给出文件中列的列表的具体示例,选择内容walkthourgh关于当用户在选择控件中选择值时应该发生什么? – 2012-05-02 11:58:08

回答

0
$('#submit').attr('disabled', 'enabled'); 

禁用属性只能与 '禁用' 来设置。如果你要启用一个按钮,您只需设置一个空字符串是这样的:

$('#submit').attr('disabled', ''); 

但在这种情况下,我建议你使用“.prop”:

$('#submit').prop('disabled', false); 

你可以阅读更多有关jQuery.api中的“.prop”和“.attr”之间的区别

相关问题