2013-04-22 2 views
-1

enter code here У меня есть форма со многими полями. Мне нужно, чтобы в раскрывающемся меню внизу с именем «Предпочтение отгрузки» было отключено по умолчанию до тех пор, пока не заполнится 2 или более полей формы. Также заполняются 2 текстовых поля, и выпадение будет включен. Как сделать? У меня нет ни малейшего представления. Любая помощь будет принята с благодарностью. ПРИМЕЧАНИЕ ТАКЖЕ: У меня есть ОГРАНИЧЕНИЯ НА ПОЛЯХ И МЕСТОПОЛОЖЕНИИ. Вот код:Включение выпадающего списка, если другие формы заполнены

<SCRIPT> $("#Glass_ASTRO_165WNT").on('change', function() { 
     this.value = (!Number(this.value)) ? '' : Math.max(100, Math.min(999999, Number(this.value))); 
     }); 

    //With reference to http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html 
    // 1. Handle placeholders (in non-HTML5 compliant browsers). 
    if(!supports_input_placeholder()) { 
     $('[placeholder]').focus(function() { 
      var input = $(this); 
      if (input.val() == input.attr('placeholder')) { 
       input.val(''); 
       input.removeClass('placeholder'); 
      } 
     }).blur(function() { 
      var input = $(this); 
      if (input.val() == '' || input.val() == input.attr('placeholder')) { 
       input.addClass('placeholder'); 
       input.val(input.attr('placeholder')); 
      } 
     }).blur(); 

     //2. Prevent placeholder values being submitted to form's action script 
     $('[placeholder]').eq(0).closest('form').submit(function() { 
      $(this).find('[placeholder]').each(function() { 
       var input = $(this); 
       if (input.val() == input.attr('placeholder')) { 
        input.val(''); 
       } 


       }); 
      }); 
     } 
    });</SCRIPT> 

    <form name="amada" method="post" action="review.php"onSubmit="return validate.check(this)"> 

        <div class="side1"> 
        <article> 
         <h2>Silver Name Badges</h2> 
         <p class="subDetails">Min. Qty: 100 pcs <br> 
          Lead Time: 3 Weeks<br> 
         <img src="web-pics/name_badge.png" width="200" height="200" alt="badge" /><br> 

         Quantity: 
        <input type="text" default=min=100 placeholder="none" name="Silver_Name_Badges" id="Silver_Name_Badges" maxlength="10" style="width:50px" tabindex=1 > 

        </p> 
       </article> 


<td valign="top"><select name="Ship_Preference" id="Ship_Preference" tabindex=20 > 
     <option value="Partial Shipment">Partial Shipment</option> 
     <option value="When All Items Ready">Ship When All Items Ready</option> 
     </select></td> 
<td valign="top"><select name="Ship_Preference" id="Ship_Preference" tabindex=20 > 
     <option value="Partial Shipment">Partial Shipment</option> 
     <option value="When All Items Ready">Ship When All Items Ready</option> 
     </select></td> 
+0

... Это слишком много HTML/JS, о котором нужно подумать. Конкретизируйте свою учетную запись на [Малый, самосохраненный, правильный пример] (http://sscce.org/), который показывает, что вам нужно и что не работает. В идеале, обеспечьте рабочий jsfiddle (или эквивалент). –

+0

Я понимаю. Значит, у вас пока нет предложений? Я ЗАПРЕЩАЮ. – user2292469

+0

Не спрашивайте, редактируйте. –

ответ

0

Одним из возможных решений является запуск события при изменении содержимого ваших входных элементов. Когда событие срабатывает, вы можете проверить количество вводимых элементов в заполненной форме (или поместить другой путь, вернуть не пустой атрибут value). Как так:

// Listen for 'input' events on all elements (that are not buttons) 
// within the form named 'amada' 
$("form[name='amada'] input[type!='button']").on("input", function(){ 
    // Count the number of inputs within this form that are not populated 
    if($("form[name='amada"] input[value!=''][type!='button']").length >= 2){ 
     // If at least 2 populated inputs, enable the "Ship_Preference" select box 
     $("select[name='Ship_Preference']").removeAttr("disabled"); 
    }else{ 
     // Otherwise, disable it. 
     $("select[name='Ship_Preference']").attr("disabled", "disabled); 
    } 
}) 

Обратите внимание на type!="button" фильтр будет удалять кнопки из выбора. Удалите это для простоты, если это не относится к вашему коду.

Также обратите внимание, что событие «ввода» (которое я украл у this answer) будет срабатывать, когда будет вставлен символ, в отличие от события «изменения», которое будет отображаться только тогда, когда поле ввода теряет фокус. Я предполагаю, что это желаемое поведение, однако вы можете попробовать либо посмотреть, что вы предпочитаете.

Надеюсь, что это поможет.

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