2009-10-06 121 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」之間的區別

相關問題