使用JavaScript在没有按钮的表单中添加两个数字(在CSHTMLMVC中)

使用JavaScript在没有按钮的表单中添加两个数字(在CSHTMLMVC中),javascript,html,asp.net-mvc,Javascript,Html,Asp.net Mvc,我正在.NETMVC中构建,我想在一个文本框中减去两个数字,然后在另一个文本框中显示所有视图(cshtml)。我已经尝试了所有的方法,但不明白为什么它不起作用 var a=parseInt(document.getElementById(“sale”).value); var b=parseInt(document.getElementById(“成本”).value); var c; a、 onkeyup=函数(){ var c; 如果(isNaN(a.value)==false){ c=(

我正在.NETMVC中构建,我想在一个文本框中减去两个数字,然后在另一个文本框中显示所有视图(cshtml)。我已经尝试了所有的方法,但不明白为什么它不起作用

var a=parseInt(document.getElementById(“sale”).value);
var b=parseInt(document.getElementById(“成本”).value);
var c;
a、 onkeyup=函数(){
var c;
如果(isNaN(a.value)==false){
c=(parseInt(a.value)| | 0)-(parseInt(b.value)| | 0);
document.getElementById(“利润”).value=c;
}
}
b、 onkeyup=函数(){
如果(isNaN(b.值)=假){
c=(parseInt(a.value)| | 0)-(parseInt(b.value)| | 0);
document.getElementById(“利润”).value=c;
}
}

1插入电池计算
日期:
电池价值:
电池销售:
电池成本:
电池利润:
电池购买:

a和
b
都应分别引用带有ids sale和cost的元素。正如您所定义的,它们只是数字值,在注册事件(如onkeyup)时没有任何意义

通过将
a
更改为
saleInput
并将
b
更改为
costInput
将使您的代码更具可读性:

var saleElement=document.getElementById(“销售”);
var costElement=document.getElementById(“成本”);
saleElement.onkeyup=calculateProfit;
costElement.onkeyup=计算利润;
函数calculateProfit(){
let sale=parseInt(saleElement.value,10);
让cost=parseInt(costElement.value,10);
if(伊斯南(销售)| |伊斯南(成本)){
//销售或成本都不是数字。利润无法计算。
返回;
}
让profitElement=document.getElementById(“利润”);
profitElement.value=销售-成本;
}

1插入电池计算
日期:
电池值:
电池销售:
电池成本:
电池利润:
购买电池:
试试看


1插入电池计算
日期:
电池值:
电池销售:
电池成本:
电池利润:
购买电池:
函数减法(){ var sale=document.getElementById(“销售”).value; var成本=document.getElementById(“成本”).value; if(销售和成本){ document.getElementById(“利润”)。值=销售-成本; } }
a应该是什么?您将其初始化为
parseInt(document.getElementById(“sale”).value)
这意味着它将是一个数字,然后通过调用
a.onkeyup
a.value
将它当作一个元素来使用。与
b相同
对不起,我忘了提到我是在asp.net-mvc中开发的。视图格式是cshtml(我更新了问题)。我添加了JavaScript代码,但仍然不起作用。请问还有其他建议吗?谢谢你的工作。我在html代码中添加了AutoPostBack=“true”runat=“server”。谢谢你的支持help@NAHEEMOLANIYAN不客气。我很高兴我帮了忙。然而,我在你的解释中遗漏了一些东西
AutoPostBack
是ASP.NET WebForms中使用的ASP.NET控件的属性,而不是ASP.NET MVC中使用的属性。您提到您正在ASP.NET MVC中开发。所以我不明白你是怎么用这个的。更不用说在您的HTML代码中我没有看到任何ASP.NET控件。正在工作,只是在HTML代码中添加了AutoPostBack=“true”runat=“server”。谢谢你的帮助