This question has already been answered:
On the page there is a pack of dynamic inputs, they can be from 0 to 90 pieces. Appear on the page from the results of ajax request to the server. They look like this:
<input required type="number" min="0" class="form-control insel settings-input" value="25" data-skim-level="min" data-key="qty" data-denom-key="5"> They have a blur handler on them, it looks like this:
$('#skimming-level-tab').on('blur','.settings-input',function () { var skimming_level_data = $(this).data('skim-level'); var qtyOrValue_data = $(this).data('key'); var denomKey_data = $(this).data('denom-key'); var dependentInput, insertedValue; if (qtyOrValue_data === 'qty') { dependentInput = $("[data-skim-level='"+ skimming_level_data +"'][data-denom-key='"+ denomKey_data +"'][data-key='value']"); insertedValue = ($(this).val()/100)*parseInt(denomKey_data, 10); } else { dependentInput = $("[data-skim-level='"+ skimming_level_data +"'][data-denom-key='"+ denomKey_data +"'][data-key='qty']"); insertedValue = ($(this).val()*100)/parseInt(denomKey_data, 10); } dependentInput.val(insertedValue); var minInput = $("[data-skim-level='min'][data-denom-key='"+ denomKey_data +"'][data-key='value']"); var skimInput = $("[data-skim-level='skim'][data-denom-key='"+ denomKey_data +"'][data-key='value']"); var maxInput = $("[data-skim-level='max'][data-denom-key='"+ denomKey_data +"'][data-key='value']"); if(validateInputs(minInput, skimInput, maxInput)) { return } else { alert('Error'); } }); Now the question is: why does the alert pop up more than 1 time, at the same time, if we replace the alert on console.log , it works 1 time?
To be precise, exactly as many times as there are inputs on the page at the moment.
console.log- Grundyconsole.logworks only once - Klimenkomud