<form>
<h4>ENTER NUMBER OF WORKMEN: <input type="number" id="s" oninput="helma.value=s.value; mha.value=s.value; sha.value=s.value;" ></h4><hr>
<h2>AVAILABILITY OF PPE</h2><hr>
HELMET     Required    
<input type="number" id="helma" >
Available <input type="number" id="helmb" oninput="helmx.value=(parseInt(helmb.value)/parseInt(helma.value))*100">   MARKS: <output name="helmx" for="helma helmb"></output>%<br><br>
SAFETY BELT     Required <input type="number" id="belta" value="">    Available <input type="number" id="beltb" value="" oninput="beltx.value=(parseInt(beltb.value)/parseInt(belta.value))*100">   MARKS: <output name="beltx" for="belta beltb"></output>%<br><br>
FR GLOVES     Required <input type="number" id="fra" value="3">    Available <input type="number" id="frb" value="" oninput="frx.value=(parseInt(frb.value)/parseInt(fra.value))*100">   MARKS: <output name="frx" for="fra frb"></output>%<br><br>
MATERIAL HANDLING GLOVES     Required <input type="number" id="mha">    Available <input type="number" id="mhb" value="" oninput="mhx.value=(parseInt(mhb.value)/parseInt(mha.value))*100">   MARKS: <output name="mhx" for="mha mhb"></output>%<br><br>
CUT RESISTANT GLOVES     Required <input type="number" id="cuta" value="4">    Available <input type="number" id="cutb" value="" oninput="cutx.value=(parseInt(cutb.value)/parseInt(cuta.value))*100">   MARKS: <output name="cutx" for="cuta cutb"></output>%<br><br>
EYE GUARD     Required <input type="number" id="eyea" value="2">    Available <input type="number" id="eyeb" oninput="eyex.value=(parseInt(eyeb.value)/parseInt(eyea.value))*100">   MARKS: <output name="eyex" for="eyea eyeb"></output>%<br><br>
NOSE MASK    <input type="number" id="masa" value="4">    Available <input type="number" id="masb" oninput="masx.value=(parseInt(masb.value)/parseInt(masa.value))*100">   MARKS: <output name="masx" for="masa masb"></output>%<br><br>
EAR PLUG (for Vibrator operation)    <input type="number" id="eara" value="">    Available <input type="number" id="earb" oninput="earx.value=(parseInt(earb.value)/parseInt(eara.value))*100">   MARKS: <output name="earx" for="eara earb"></output>%<br><br>
SAFETY SHOE    <input type="number" id="sha">    Available <input type="number" id="shb" oninput="shx.value=(parseInt(shb.value)/parseInt(sha.value))*100">   MARKS: <output name="shx" for="sha shb"></output>%<br><br>
GUM BOOT    <input type="number" id="gba" value="4">    Available <input type="number" id="gbb" oninput="gbx.value=(parseInt(gbb.value)/parseInt(gba.value))*100">   MARKS: <output name="gbx" for="gba gbb"></output>%<br><br>
LUMINOUS JACKET (FOR C-SET ONLY)    <input type="number" id="lja">    Available <input type="number" id="ljb" oninput="ljx.value=(parseInt(ljb.value)/parseInt(lja.value))*100;">   MARKS: <output name="ljx" for="lja ljb"></output>%<br><br>
<p id="avppesc"></p>
<script> //calculation of marks
var average=0,flag=0;
if (document.getElementById("helmx").value>-1){ average=average+document.getElementById("helmx").value; flag++; }
if (document.getElementById("beltx").value>-1){ average=average+document.getElementById("beltx").value; flag++; }
if (document.getElementById("frx").value>-1){ average=average+document.getElementById("frx").value; flag++; }
if (document.getElementById("mhx").value>-1){ average=average+document.getElementById("mhx").value; flag++; }
if (document.getElementById("cutx").value>-1){ average=average+document.getElementById("cutx").value; flag++; }
if (document.getElementById("eyex").value>-1){ average=average+document.getElementById("eyex").value; flag++; }
if (document.getElementById("masx").value>-1){ average=average+document.getElementById("masx").value; flag++; }
if (document.getElementById("earx").value>-1){ average=average+document.getElementById("earx").value; flag++; }
if (document.getElementById("shx").value>-1){ average=average+document.getElementById("shx").value; flag++; }
if (document.getElementById("gbx").value>-1){ average=average+document.getElementById("gbx").value; flag++; }
if (document.getElementById("ljx").value>-1){ average=average+document.getElementById("ljx").value; flag++; }
average=average/flag;
document.getElementById("avppesc").innerHTML=average;
</script>
<br><br><br>
</form>
每当用户以html形式输入内容时,我都希望运行注释为“标记计算”的脚本。如果用户在该字段中未输入任何内容,则不应在计算中予以考虑。
我一直在尝试使用onload
函数,没有任何作用。
我希望带有id=avppesc
的属性显示脚本中计算的平均值。脚本应该在用户输入任何内容时更新。
答案 0 :(得分:0)
使用功能onkeyup:
<input type="number" id="s" onkeyup="calculate_avg(parameters)" >
<script> function calculate_avg(parametrs){
var average=0,flag=0;
if (document.getElementById("helmx").value>-1){ average=average+document.getElementById("helmx").value; flag++; }
average=average/flag;
document.getElementById("avppesc").innerHTML=average;
}
</script>
答案 1 :(得分:0)
就像每次用户离开输入时验证表单一样,onblur属性调用将执行脚本的处理程序。
<h4>ENTER NUMBER OF WORKMEN: <input type="number" id="s" oninput="helma.value=s.value; mha.value=s.value; sha.value=s.value;" onblur="calcOfMarks(this)" /></h4><hr> // this a reference of the input element
function calcOfMarks(inputField) { // inputField is the ID number for the HTML text box
// Your logic here
console.log(inputField.value);
}
答案 2 :(得分:0)
oninput
事件侦听器每次在input
的值更改时执行。
让我们看看这是否是您想要的。
let inputs = document.querySelectorAll('form input');
let avppesc = document.querySelector('#avppesc');
for(let i = 0; i<inputs.length; ++i){
inputs[i].addEventListener('input', onInputFunction);
}
function onInputFunction(){
let average=0,flag=0;
for(let i = 1; i<inputs.length; ++i){
let id = inputs[i].id.slice(0,-1);
let value = parseFloat(inputs[i].value) || 0;
let ina = parseInt(document.querySelector('#'+id+'a').value);
let inb = parseInt(document.querySelector('#'+id+'b').value);
if(inb > 0 && ina>0)
document.querySelector('#'+id+'x').value = inb/ina*100;
if(value <= -1) continue;
flag++;
average += value;
}
average /= flag;
avppesc.textContent = average;
}
//helmx.value=(parseInt(helmb.value)/parseInt(helma.value))*100
<form>
<h4>ENTER NUMBER OF WORKMEN: <input type="number" id="s" oninput="helma.value=s.value; mha.value=s.value; sha.value=s.value;" ></h4><hr>
<h2>AVAILABILITY OF PPE</h2><hr>
HELMET     Required    
<input type="number" id="helma" >
Available <input type="number" id="helmb">   MARKS: <output class='out' id="helmx" for="helma helmb"></output>%<br><br>
SAFETY BELT     Required <input type="number" id="belta" value="">    Available <input type="number" id="beltb">   MARKS: <output class='out' id="beltx" for="belta beltb"></output>%<br><br>
FR GLOVES     Required <input type="number" id="fra" value="3">    Available <input type="number" id="frb">   MARKS: <output class='out' id="frx" for="fra frb"></output>%<br><br>
MATERIAL HANDLING GLOVES     Required <input type="number" id="mha">    Available <input type="number" id="mhb">   MARKS: <output class='out' id="mhx" for="mha mhb"></output>%<br><br>
CUT RESISTANT GLOVES     Required <input type="number" id="cuta" value="4">    Available <input type="number" id="cutb">   MARKS: <output class='out' id="cutx" for="cuta cutb"></output>%<br><br>
EYE GUARD     Required <input type="number" id="eyea" value="2">    Available <input type="number" id="eyeb">   MARKS: <output class='out' id="eyex" for="eyea eyeb"></output>%<br><br>
NOSE MASK    <input type="number" id="masa" value="4">    Available <input type="number" id="masb">   MARKS: <output class='out' id="masx" for="masa masb"></output>%<br><br>
EAR PLUG (for Vibrator operation)    <input type="number" id="eara" value="">    Available <input type="number" id="earb">   MARKS: <output class='out' id="earx" for="eara earb"></output>%<br><br>
SAFETY SHOE    <input type="number" id="sha">    Available <input type="number" id="shb">   MARKS: <output id="shx" for="sha shb"></output>%<br><br>
GUM BOOT    <input type="number" id="gba" value="4">    Available <input type="number" id="gbb">   MARKS: <output class='out' id="gbx" for="gba gbb"></output>%<br><br>
LUMINOUS JACKET (FOR C-SET ONLY)    <input type="number" id="lja">    Available <input type="number" id="ljb">   MARKS: <output class='out' id="ljx" for="lja ljb"></output>%<br><br>
<p id="avppesc"></p>
</form>