2014-11-04 4 views
1

im пытается взять несколько входов от пользователя с разными идентификаторами элемента и запустить их через одну функцию if else. Вот мой код:с использованием одной функции для нескольких записей javascript

Введите сорт и количество кредитов для курса 1:

<input type="text" id="lettergrade1" onchange="lettergrade[0]=numgrade(this.value)";> 
<input type="text" id="credithour1" onchange="credhour[0]";> 

и т.д. ... это продолжается вплоть до lettergrade 5. Я запускать их с помощью функции numgrade (без использования цикла for). как я могу запустить их через ту же конструкцию if else, не делая 5 разных (как я могу сделать один оператор, который будет работать для 5 difffferent id)?

ответ

0

Итерация через элементы и привязать их к OnChange обратного вызова:

var $ = document; 
 
var lettergrade = []; 
 

 
[].slice.call($.querySelectorAll('.lettergrade')).forEach(function(el, index) { 
 
    el.onchange = function() { 
 
    numgrade(index, this.value); 
 
    } 
 
}); 
 

 
function numgrade(index, value) { 
 
    lettergrade[index] = value; 
 
    
 
    $.getElementById('output').innerText = JSON.stringify(lettergrade); 
 
}
<input type="text" class="lettergrade" id="lettergrade1" placeholder="1"> 
 
<input type="text" class="lettergrade" id="lettergrade2" placeholder="2"> 
 
<input type="text" class="lettergrade" id="lettergrade3" placeholder="3"> 
 
<input type="text" class="lettergrade" id="lettergrade4" placeholder="4"> 
 
<input type="text" class="lettergrade" id="lettergrade5" placeholder="5"> 
 
    
 
<output id="output"></output>

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