javascript - 计算文本框的输入并更新另一个文本框而无需重新加载页面

标签 javascript jquery html

我的用户界面 - http://puu.sh/bbx5G/33953b74ea.png

我想计算 5 篇论文的分数 -> 在第一个文本框中输入并更新第二个文本框(具有同等等级),而无需重新加载页面。这意味着,当我打字时,成绩文本框应该更新。我尝试运行一个 for 循环,并在点击提交按钮后迭代 ma​​rksgrades 的 5 个 ID,但它似乎不起作用。因此,首先我需要完成这项工作,然后,我想要一些可以在我输入分数时立即更新成绩字段的东西。 我的 HTML 表单包含表格:

<td><input type="text" id="pm1" onkeypress="validate(event)" onchange="" maxlength=3/> = 
<input type="text" id="pg1" onkeypress="return inputLimiter(event)" maxlength=1/></td>
<td><input type="text" id="pm2" onkeypress="validate(event)" maxlength=3/> = 
<input type="text" id="pg2" onkeypress="return inputLimiter(event)" maxlength=1/></td>
..... upto pm5 and pg5

我的 JavaScript:

function calculate_g(){
var i = 1;
var m = 0.0;
var p = 0.0;
var g = '';
for(i = 1; i <= 5; i++)
    {
        m = document.getElementById("pm"+i).value;
        p = (m / 80.00) * 100.00;       
        if(p >= 45.00 && p <= 49.99) { g = 'P'; }
        if(p >= 50.00 && p <= 54.99) { g = 'E'; }
        if(p >= 55.00 && p <= 59.99) { g = 'D'; }
        if(p >= 60.00 && p <= 69.99) { g = 'C'; }
        if(p >= 70.00 && p <= 74.99) { g = 'B'; }
        if(p >= 75.00 && p <= 79.99) { g = 'A'; }
        if(p >= 80.00) { g = 'O'; }
        document.getElementById("pg"+i).value = g;
    }
}

最佳答案

要在不重新加载页面的情况下更新字段,您可以像这样构建代码,并根据需要扩展它以获取更多输入。您可以在表单提交或 keyup 上进行验证,以对您来说更容易的方式进行:

JSFIDDLE:http://jsfiddle.net/biz79/fesjejnp/

<table>
<tr><td>
        ESE1<input type="text" id="pm1" onkeyup="calc()" maxlength=3/> = 
        PR1<input type="text" id="pg1" maxlength=1/ class="pipe" readonly>
    </td></tr>
    <tr><td>
        ESE2<input type="text" id="pm2" onkeyup="calc()" maxlength=3/> = 
        PR2<input type="text" id="pg2" maxlength=1/ class="pipe" readonly></td></tr>
</table>

<script>

function calc() {
    var m;
    var p = 0.0;
    var g = '';

    for (var i = 1; i < 3; i++) {
      m = document.getElementById("pm" + i).value;      
      g = getGrade(p,m);
      document.getElementById("pg" + i).value = g;
    }
}

function getGrade(p,m) {
    var g;
    p = (m / 80.00) * 100.00;       
    if(p >= 45.00 && p <= 49.99) { g = 'P'; }
    else if(p >= 50.00 && p <= 54.99) { g = 'E'; }
    else if(p >= 55.00 && p <= 59.99) { g = 'D'; }
    else if(p >= 60.00 && p <= 69.99) { g = 'C'; }
    else if(p >= 70.00 && p <= 74.99) { g = 'B'; }
    else if(p >= 75.00 && p <= 79.99) { g = 'A'; }
    else if(p >= 80.00) { g = 'O'; }
    else { g = 'X'; }
    return g;
}
</script>

关于javascript - 计算文本框的输入并更新另一个文本框而无需重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25554344/

相关文章:

javascript - ChartJs - 具有多个数据集的圆环图上的圆形边框

html - 点击更改产品

Javascript 设置 CSS :after styles

javascript - 如何使用 URL 在特定单元格/行打开电子表格

javascript - 通过 jQuery 将来自 Firebase 的图像设置为 div 的背景

在默认行为后执行的 Javascript 事件处理程序

jquery - 涉及 Rad Editor 和 jQuery .animate 的 CSS 溢出副作用

javascript - 基于 jquery cookie 的操作

html - 将文本与复选框对齐,似乎无法正确对齐?

javascript - 鼠标离开时停止每个循环