如何在 JavaScript 中定义文本字段和单选按钮侦听器

How to define textfield and radio button listeners in JavaScript

本文关键字:字段 单选按钮 侦听器 文本 定义 JavaScript      更新时间:2023-09-26

所以对于一个类项目,我必须制作这个简单的计算器,这很容易做到。但是,我需要在 JavaScript 中定义我的事件侦听器,而不是使用类似的东西: onclick="compute()"

但是每当我更改字段中的值或选择任何单选按钮时,我需要更新计算器的结果。我该怎么做?我现在拥有的代码不起作用。

<script>
function compute(){
    var functionSelected = document.getElementsByName("function");
    var valueOne = Number(document.getElementById("fielda").value);
    var valueTwo = Number(document.getElementById("fieldb").value);
    var ans = 0;
    if(functionSelected[0].checked){
        ans = (valueOne+valueTwo);
    }
    if(functionSelected[1].checked){
        ans = (valueOne-valueTwo);
    }
    if(functionSelected[2].checked){
        ans = (valueOne*valueTwo);
    }
    if(functionSelected[3].checked){
        ans = (valueOne/valueTwo);
    }
    if(ans>=9007199254740992){
        document.getElementById("solution").textContent = "ERROR NUMBER TO LARGE TO BE COMPUTED";
    }
    else{
        document.getElementById("solution").textContent = "Equals: " + ans;
    }
}
document.getElementById("fielda").addEventListener("change", compute(), false);
document.getElementById("fieldb").addEventListener("change", compute(), false);
document.getElementByName("function").onclick = compute();
</script>
</head>
<body>
    <p>
    <input type="number" id="fielda"/><br />
    <input type="number" id="fieldb"/><br />
    <label><input name="function" type="radio" value="add"/> Add</label><br />
    <label><input name="function" type="radio" value="subtract"/> Subtract</label><br />
    <label><input name="function" type="radio" value="multiply"/> Multiply</label><br />
    <label><input name="function" type="radio" value="divide"/> Divide</label><br />
    </p>
    <p>
    <output id="solution">Solution Will Appear Here</output>
    </p>
</body>
您可以使用

<select ... onchange="javascript:compute();">

根据控件的不同,可以使用许多事件来响应不同的事件。

它们被命名为onmouseoveronclickonchange等,如果你愿意,你可以为每个分配一个javascript函数。

另一种选择是使用以下语法:

document.getElementById("id_of_select_control").onchange = function() {
    // your code here
}

或者,如果你在项目中使用 jQuery,如下所示:

$("#id_of_select_control").change(function() {
    // your code here
});