2009-10-06 2 views
0

У меня есть страница, содержащая коллекцию элементов выбора, которые используются для идентификации столбцов в текстовом файле. Каждый раз, когда пользователь идентифицирует столбец, выбранный параметр удаляется из другого выбора на странице. Когда пользователь идентифицирует все столбцы, входной сигнал «отправить» необходимо активировать, чтобы пользователь мог перейти к следующему шагу. Мне нужен способ обрезки, чтобы определить, когда были выбраны все столбцы.Кнопка включения 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

+0

Можете ли вы привести конкретный пример для списка столбцов в файле, выбираете контент walkthourgh о том, что должно произойти, когда пользователь выбрал значение в элементе управления select? –

ответ

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

отключен атрибут может быть установлен только с 'инвалидами'. И если вы хотите, чтобы включить кнопку вы просто задать пустую строку, как это:

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

Но в этом случае я рекомендую вам использовать «.prop»:

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

Вы можете прочитать больше о разница между «.prop» и «.attr» в jQuery.api

Смежные вопросы