我已经指定了一个添加两个文本框值的任务。我希望只要在前两个文本框中输入值,就可以在第三个文本框中显示添加结果,而无需按任何按钮。
例如:在第一个文本框中我想输入450,当我按下数字'450'的数字4时,它将被添加到第3个文本框,任何数字我按在前两个文本框中,突然发生变化将在第三个文本框中反映出来。我该怎么做?
这里我在onkeyup中编写代码调用sum()
onkeyup="sum()"
function sum() {
var txtFirstNumberValue = document.getElementById('txt1').value;
var txtSecondNumberValue = document.getElementById('txt2').value;
var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
if(!isNaN(result)){
document.getElementById('txt3').value = result;
}
}
这不适用于chrome
答案 0 :(得分:10)
试试这个
function sum() {
var txtFirstNumberValue = document.getElementById('txt1').value;
var txtSecondNumberValue = document.getElementById('txt2').value;
if (txtFirstNumberValue == "")
txtFirstNumberValue = 0;
if (txtSecondNumberValue == "")
txtSecondNumberValue = 0;
var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
if (!isNaN(result)) {
document.getElementById('txt3').value = result;
}
}
答案 1 :(得分:7)
试试这个:在 CHROME
中打开小提琴function sum() {
var txtFirstNumberValue = document.getElementById('txt1').value;
var txtSecondNumberValue = document.getElementById('txt2').value;
var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
if (!isNaN(result)) {
document.getElementById('txt3').value = result;
}
}
<强> HTML 强>
<input type="text" id="txt1" onkeyup="sum();" />
<input type="text" id="txt2" onkeyup="sum();" />
<input type="text" id="txt3" />
答案 2 :(得分:1)
我没有找到谁做出优雅的答案,这就是为什么让我说:
window.sum= () =>
document.getElementById('result').innerHTML=
Array.from(
document.querySelectorAll('#txt1,#txt2')
).map(e=>parseInt(e.value)||0)
.reduce((a,b)=>a+b,0)
<input type="text" id="txt1" onkeyup="sum()"/>
<input type="text" id="txt2" onkeyup="sum()" style="margin-right:10px;"/><span id="result"></span>
let isDestroyed = false;
$http.get('/someurl').then(response => {
if (isDestroyed) return;
processResponse();
});
$scope.$on('$destroy',() => {
isDestroyed = true;
});
答案 3 :(得分:0)
那么,根据您的代码,您可以在每个文本框中添加 onkeyup = sum() txt1和txt2
答案 4 :(得分:0)
function sum() {
var result=0;
var txtFirstNumberValue = document.getElementById('txt1').value;
var txtSecondNumberValue = document.getElementById('txt2').value;
if (txtFirstNumberValue !="" && txtSecondNumberValue ==""){
result = parseInt(txtFirstNumberValue);
}else if(txtFirstNumberValue == "" && txtSecondNumberValue != ""){
result= parseInt(txtSecondNumberValue);
}else if (txtSecondNumberValue != "" && txtFirstNumberValue != ""){
result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
}
if (!isNaN(result)) {
document.getElementById('txt3').value = result;
}
}
答案 5 :(得分:0)
这是正确的代码
function sum()
{
var txtFirstNumberValue = document.getElementById('total_fees').value;
var txtSecondNumberValue = document.getElementById('advance_payement').value;
var result = parseInt(txtFirstNumberValue) - parseInt(txtSecondNumberValue);
if(txtFirstNumberValue=="" ||txtSecondNumberValue=="")
{
document.getElementById('balance_payement').value = 0;
}
if (!isNaN(result))
{
document.getElementById('balance_payement').value = result;
}
}
答案 6 :(得分:0)
自eval("3+2")=5
以来,您可以按照以下方式使用它:
byId=(id)=>document.getElementById(id);
byId('txt3').value=eval(`${byId('txt1').value}+${byId('txt2').value}`)
由此,您不需要parseInt
答案 7 :(得分:0)
在下面的代码中,我已经完成了总和和减法的操作:因为如果你想调用函数,使用 JavaScript ,那么你必须将你的下面的代码放在document.ready(function{ });
之外和之外脚本结束标记。
我为此操作添加了另一个脚本标记。并在脚本开始标记//代码//脚本结束标记之间放置以下代码。
function operation()
{
var txtFirstNumberValue = parseInt(document.getElementById('basic').value);
var txtSecondNumberValue =parseInt(document.getElementById('hra').value);
var txtThirdNumberValue =parseInt(document.getElementById('transport').value);
var txtFourthNumberValue =parseInt(document.getElementById('pt').value);
var txtFiveNumberValue = parseInt(document.getElementById('pf').value);
if (txtFirstNumberValue == "")
txtFirstNumberValue = 0;
if (txtSecondNumberValue == "")
txtSecondNumberValue = 0;
if (txtThirdNumberValue == "")
txtThirdNumberValue = 0;
if (txtFourthNumberValue == "")
txtFourthNumberValue = 0;
if (txtFiveNumberValue == "")
txtFiveNumberValue = 0;
var result = ((txtFirstNumberValue + txtSecondNumberValue +
txtThirdNumberValue) - (txtFourthNumberValue + txtFiveNumberValue));
if (!isNaN(result)) {
document.getElementById('total').value = result;
}
}
并将onkeyup="operation();"
放入html表单中的所有5个文本框中。
此代码在Firefox和Chrome中运行。