2014-05-13 2 views
0

У меня есть функция jquery, которая проверяет, есть ли изменения внутри диапазона.Не удается проверить динамически созданные флажки

$('#productionInputs').change(function() { 

Это span не имеет код/​​дочерние теги. Это существует, потому что это, где я добавляю динамически созданные кнопки радио

#productionInputs 

Скажут #productionInputs имеет динамически генерируемые радиокнопки, сгенерированные другое событие. Вышеуказанная функция выполняется всякий раз, когда в пределах диапазона есть изменения (помечается галочка.)

Если радиокнопка отмечена значком 'Yes', появится набор флажков. Теперь проблема начинается здесь, когда я пытаюсь пометить любой из этих флажков, ничего не происходит. Я не могу щелкнуть по нему!

Я попытался проверить элемент, казалось бы, каждый раз, когда я пытаюсь щелкнуть флажок, все это снова возникает из-за функции $('#productionInputs').change(function() {.

Есть ли способ предотвратить это?

Вот код:

function isCheck(name) { 
     var elems = document.getElementsByName(name); 
     for (var i = 0; i < elems.length; i++) { 
      if (elems[i].checked) { 
       return elems[i].value; 
      } 
     } 

     return undefined; 
    } 

    function isOneChecked() { 
     // All <input> tags... 
     var chx = document.getElementsByTagName('input'); 
     for (var i = 0; i < chx.length; i++) { 
      // If you have more than one radio group, also check the name attribute 
      // for the one you want as in && chx[i].name == 'choose' 
      // Return true from the function on first match of a checked item 
      if (chx[i].type == 'radio' && chx[i].checked) { 
       return true; 
      } 
     } 
     // End of the loop, return false 
     return false; 
    } 


$('#productionInputs').change(function() { 
     var responseSS = isCheck('production-input-ss'); 
     var responseAS = isCheck('production-input-as'); 
     var responsePD = isCheck('production-input-pu'); 
     var responsePU = isCheck('production-input-pd'); 

     var sector = $('#compSector').val(); 
     var result = ''; 
     var resultSS = ''; 
     var resultAS = ''; 
     var resultPU = ''; 
     var resultPD = ''; 

     var ifChecked = isOneChecked(); 

     if(sector == 'Food Products and Beverages, Tobacco, Animal feeds, Agricultural products') { 
      if(ifChecked) { 
       if(responseSS == 'Yes') { 
        resultSS 
         = "<p class='question'>Please specify. Click as many as apply.</p>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Seafood'>Seafood<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Shortening'>Shortening<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Sugar'>Sugar<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Buffalo Meat'>Buffalo Meat<br/>"       
         + "<input type='checkbox' name='production-ss-items[]' value='Copra Cake'>Copra Cake<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Vitamins'>Vitamins<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Milk Chocolate'>Milk Chocolate<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Coloring'>Coloring<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Fuel'>Fuel<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Refined Sugar'>Refined Sugar<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Flour'>Flour<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Shortening'>Shortening<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Garlic'>Garlic<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Copra Cake'>Copra Cake<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Onion'>Onion<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Rice Bran'>Rice Bran<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='others'>Others"; 
       } 

       else if(responseAS == 'Yes') { 
        resultAS 
         = "<p class='question'>Please specify. Click as many as apply.</p>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Seafood'>Seafood<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Shortening'>Shortening<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Sugar'>Sugar<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Buffalo Meat'>Buffalo Meat<br/>"       
         + "<input type='checkbox' name='production-ss-items[]' value='Copra Cake'>Copra Cake<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Vitamins'>Vitamins<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Milk Chocolate'>Milk Chocolate<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Coloring'>Coloring<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Fuel'>Fuel<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Refined Sugar'>Refined Sugar<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Flour'>Flour<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Shortening'>Shortening<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Garlic'>Garlic<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Copra Cake'>Copra Cake<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Onion'>Onion<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Rice Bran'>Rice Bran<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='others'>Others"; 
       } 

       else if(responsePU == 'Yes') { 
        resultPU 
         = "<p class='question'>Please specify. Click as many as apply.</p>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Seafood'>Seafood<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Shortening'>Shortening<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Sugar'>Sugar<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Buffalo Meat'>Buffalo Meat<br/>"       
         + "<input type='checkbox' name='production-ss-items[]' value='Copra Cake'>Copra Cake<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Vitamins'>Vitamins<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Milk Chocolate'>Milk Chocolate<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Coloring'>Coloring<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Fuel'>Fuel<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Refined Sugar'>Refined Sugar<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Flour'>Flour<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Shortening'>Shortening<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Garlic'>Garlic<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Copra Cake'>Copra Cake<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Onion'>Onion<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Rice Bran'>Rice Bran<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='others'>Others"; 
       } 

       else if(responsePD == 'Yes') { 
        resultPD 
         = "<p class='question'>Please specify. Click as many as apply.</p>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Seafood'>Seafood<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Shortening'>Shortening<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Sugar'>Sugar<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Buffalo Meat'>Buffalo Meat<br/>"       
         + "<input type='checkbox' name='production-ss-items[]' value='Copra Cake'>Copra Cake<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Vitamins'>Vitamins<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Milk Chocolate'>Milk Chocolate<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Coloring'>Coloring<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Fuel'>Fuel<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Refined Sugar'>Refined Sugar<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Flour'>Flour<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Shortening'>Shortening<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Garlic'>Garlic<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Copra Cake'>Copra Cake<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Onion'>Onion<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='Rice Bran'>Rice Bran<br/>" 
         + "<input type='checkbox' name='production-ss-items[]' value='others'>Others"; 
       } 
      } 
     } 

     $('#productionInputSSConfirmed').html(resultSS); 
     $('#productionInputASConfirmed').html(resultAS); 
     $('#productionInputPUConfirmed').html(resultPU); 
     $('#productionInputPDConfirmed').html(resultPD); 
    }); 

Вот код для сгенерированных радиокнопок:

$(document).ready(function() { 
     $("#manufacturingForm").formToWizard({ submitButton: 'saveInfo' }); 
    // Sector, Production Input 
    $("#compSector").on('change', function() { 
     var sector = $(this).val(); 
     var resultSS = ''; 
     var resultAS = ''; 
     var resultPU = ''; 
     var resultPD = ''; 
     var resultOther = ''; 

     if(sector) { 
      { 
       resultSS = "<p class='question'>Do you have any important production inputs in your company that were in SHORT SUPPLY this month(<?=$currentMonth?>)?</p>" 
         + "<input type='radio' name='production-input-ss' value='Yes' required>Yes<br />" 
         + "<input type='radio' name='production-input-ss' value='None'>None<br />"; 

       resultAS = "<p class='question'>Do you have any important production inputs in your company that were in ABUNDANT SUPPLY this month(<?=$currentMonth?>)?</p>" 
         + "<input type='radio' name='production-input-as' value='Yes' required>Yes<br />" 
         + "<input type='radio' name='production-input-as' value='None'>None<br />"; 

       resultPU = "<p class='question'>Do you have any important production inputs in your company with PRICES THAT ARE ON THE UPSIDE this month(<?=$currentMonth?>)?</p>" 
         + "<input type='radio' name='production-input-pu' value='Yes' required>Yes<br />" 
         + "<input type='radio' name='production-input-pu' value='None'>None<br />"; 

       resultPD = "<p class='question'>Do you have any important production inputs in your company with PRICES THAT ARE ON THE DOWNSIDE this month(<?=$currentMonth?>)?</p>" 
         + "<input type='radio' name='production-input-pd' value='Yes' required>Yes<br />" 
         + "<input type='radio' name='production-input-pd' value='None'>None<br />"; 
      } 
     } 

     $('#spnProductionInputOther').html(resultOther); 
     $('#productionInputSS').html(resultSS); 
     $('#productionInputAS').html(resultAS); 
     $('#productionInputPU').html(resultPU); 
     $('#productionInputPD').html(resultPD); 
    }); 
+0

Проверьте мой ответ, но я не уверен, что это то, что вы ищете. Где первый флажок, который генерирует контент в первую очередь? –

+0

Я отредактировал мое сообщение и добавил код для сгенерированных переключателей. @Adelphia – user3530303

ответ

0

@ user3530303 вы можете попробовать это логически получать значения выбранной кнопки радио

<input type="radio" name="radio1" value="creditcard" /> 
<input type="radio" name="radio2" value="cash"/> 
<input type="radio" name="radio3" value="cheque"/> 
<input type="radio" name="radio4" value="instore"/> 

$("input[name='radio1']:checked").val() 

ссылка, это может помочь javascript jquery radio button click

+0

Как определить имя зарегистрированного переключателя? или я должен ввести идентификатор в это тоже? – user3530303

+0

вы можете указать другое имя для <тега ввода или да, вы можете использовать id также – Tim

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