Javascript 简单的JS数学包含一个错误,我不知道如何修复它
我的数学Javascript 简单的JS数学包含一个错误,我不知道如何修复它,javascript,math,Javascript,Math,我的数学函数(doMath())有问题。我已经用尽了我所知道的一切关于如何让这个工作。我已经把我的代码贴在这里了,但我不知道怎么回事。当表单更简单时,它可以工作,但我向它添加了一些新特性。如果你不介意在这个问题上帮助我,我将不胜感激 function doMath() { var one = document.getElementById('price').value; var two = document.getElementById('recon').value; var outp = "
函数(doMath())
有问题。我已经用尽了我所知道的一切关于如何让这个工作。我已经把我的代码贴在这里了,但我不知道怎么回事。当表单更简单时,它可以工作,但我向它添加了一些新特性。如果你不介意在这个问题上帮助我,我将不胜感激
function doMath() {
var one = document.getElementById('price').value;
var two = document.getElementById('recon').value;
var outp = "";
var outps = "";
{
ans = (one*two);
ansq = (one*two)*12;
outp =" " + "$" + ans.toFixed(2) + "/Month";
outps =" " + "$" + ansq.toFixed(2) + "/Year";
}
document.getElementById('outtab').innerHTML = outp;
document.getElementById('outtab1').innerHTML = outps;
}
嗨:)我决定尝试修复你的代码。我会告诉你我做了什么来找出问题所在
首先,我将您的所有代码复制到我的计算机上,并按原样进行测试
当点击“计算总数”按钮时,似乎。。。什么也没发生。我还注意到“年度总额”/“月度总额”为空。。。因此,我假设您的问题是这些显示器从未发生过任何事情
我的第一个想法是,可能按钮坏了——换句话说,它没有调用doMath()!为了检查这一点,我添加了警报(“domath called”);在domath()方法内部。正如我所怀疑的,没有出现弹出窗口。这意味着按钮制作不正确,并且没有调用doMath
弄明白这一点后,我立即检查了你的按钮HTML。事实证明,它看起来是有效的!困惑的是,我又看了一眼你的函数,发现了一些奇怪的语法。我试着移除它,但失败了。我决定完全删除你的JS,并用我自己的JS替换它,看看我的代码副本是否有效。如果是这样,那么这将指向语法问题。就在我准备这么做的时候,我注意到了一些非常奇怪的事情
<script language="text/javascript">
语言应该是类型化的
我用类型替换了语言,并且。。。成功了
我重新添加了你奇怪的语法,看看它是否也有效果。事实并非如此。因此,我可以得出结论,你的消息来源确实存在一个问题。解决方案很简单:
改变
<script language="text/javascript">
到
应用一项更改后的完整代码为:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Package Plans</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
function doMath() {
var one = eval(document.theForm.elements[0].value);
var two = eval(document.theForm.elements[1].value);
var outp = "";
var outps = "";
{
ans = (one*two);
ansq = (one*two)*12;
outp =" " + "$" + ans.toFixed(2) + "/Month";
outps =" " + "$" + ansq.toFixed(2) + "/Year";
}
document.getElementById('outtab').innerHTML = outp;
document.getElementById('outtab1').innerHTML = outps;
}
</script>
<script type="text/javascript">
function reconPackage(){
var text = document.getElementById('recom');
var rad=document.theForm.gb;
for(var i=0;i<rad.length;i++){
if(rad[i].checked){
switch(rad[i].value){
case '5':text = '5';break;
case '10':text = '10';break;
case '15':text = '15';break;
case '20':text = '20';break;
case '30':text = '30';break;
case '50':text = '50';break;
case '100':text = '100';break;
default: text='';break;
}
}
}
document.getElementById('recom').innerHTML = text;
}
</script>
<script type="text/javascript">
function calcPackage(){
var text = document.getElementById('price');
var rad=document.theForm.gb;
for(var i=0;i<rad.length;i++){
if(rad[i].checked){
switch(rad[i].value){
case '5':text.value = '2.50';break;
case '10':text.value = '2.00';break;
case '15':text.value = '2.00';break;
case '20':text.value = '1.75';break;
case '30':text.value = '1.25';break;
case '50':text.value = '0.80';break;
case '100':text.value = '0.50';break;
default: text='';break;
}
}
}
document.getElementById('price').innerHTML = text;
}
</script>
<script type="text/javascript">
function DoAllThese() {
calcPackage();
reconPackage();
}
</script>
</head>
<body>
<form id="one" name="theForm" onClick="DoAllThese()">
<p><strong>Choose package that fits you best, then click the button below to get a price:</strong><br/>
<input type="radio" name="gb" value="5">I just use my computer for email and surfing the web. I have a few documents and other files I need to back up.<br/>
<input type="radio" name="gb" value="10">
I have some music and a few files, I am in school/college and need to backup my work.<br/>
<input type="radio" name="gb" value="15">
I have 50 songs, pictures, and documents, I do not want to lose.
<br/>
<input type="radio" name="gb" value="20">
I have a lot of documents that need to be backed up regulary, plus some music.<br/>
<input type="radio" name="gb" value="30">
I own small business and need to backup a few computers.<br/>
<input type="radio" name="gb" value="50">
I have a few 100 songs, and need to protect them!<br/>
<input type="radio" name="gb" value="100">I'm a music and picture hound. My life's collection of MP3s and every picture I've ever taken is on my computer.<br/>
<p>Recommend Package: <span id="recom"></span> GB Plan</p>
</p>
<p>
</p>
<div>$<input name="two" type="text" DISABLED id="price" size="8"></div>
<input type="button" onClick="doMath();" value="Calculate Total"><input type="reset" value="Reset Form" />
<BR><BR>Monthly Total:<SPAN ID="outtab"></SPAN>
<br>Yearly Total:<SPAN ID="outtab1"></SPAN>
</form>
<br><BR>
</body>
</html>
一揽子计划
函数doMath(){
var one=eval(document.theForm.elements[0].value);
var two=eval(document.theForm.elements[1].value);
var outp=“”;
var outps=“”;
{
ans=(一乘二);
ansq=(一乘二)*12;
outp=“”+“$”+ans.toFixed(2)+“/月”;
输出=”+“$”+ansq.toFixed(2)+“/年”;
}
document.getElementById('outtab')。innerHTML=outp;
document.getElementById('outtab1')。innerHTML=outps;
}
函数包(){
var text=document.getElementById('recom');
var rad=document.theForm.gb;
对于(var i=0;我在发布问题时,应该假设读者不想做任何工作来试图弄清楚它在问什么……回到它工作的地方,一次添加一个新功能。当您希望我们帮助您修复某个问题时,您应该首先告诉我们什么不工作,而不是让人们猜测问题可能是什么be.“我有个问题”没有意义。我觉得被骗了。标题说simple
不要使用EVAL!糟糕!使用parseInt,parseFloat!我接受了这个建议并应用了它。谢谢它。我还修改了我的代码,现在一切都很好。很高兴听到:D如果你能单击我答案旁边的复选标记,我会得到一分ts,非常感谢!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Package Plans</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script type="text/javascript">
function doMath() {
var one = eval(document.theForm.elements[0].value);
var two = eval(document.theForm.elements[1].value);
var outp = "";
var outps = "";
{
ans = (one*two);
ansq = (one*two)*12;
outp =" " + "$" + ans.toFixed(2) + "/Month";
outps =" " + "$" + ansq.toFixed(2) + "/Year";
}
document.getElementById('outtab').innerHTML = outp;
document.getElementById('outtab1').innerHTML = outps;
}
</script>
<script type="text/javascript">
function reconPackage(){
var text = document.getElementById('recom');
var rad=document.theForm.gb;
for(var i=0;i<rad.length;i++){
if(rad[i].checked){
switch(rad[i].value){
case '5':text = '5';break;
case '10':text = '10';break;
case '15':text = '15';break;
case '20':text = '20';break;
case '30':text = '30';break;
case '50':text = '50';break;
case '100':text = '100';break;
default: text='';break;
}
}
}
document.getElementById('recom').innerHTML = text;
}
</script>
<script type="text/javascript">
function calcPackage(){
var text = document.getElementById('price');
var rad=document.theForm.gb;
for(var i=0;i<rad.length;i++){
if(rad[i].checked){
switch(rad[i].value){
case '5':text.value = '2.50';break;
case '10':text.value = '2.00';break;
case '15':text.value = '2.00';break;
case '20':text.value = '1.75';break;
case '30':text.value = '1.25';break;
case '50':text.value = '0.80';break;
case '100':text.value = '0.50';break;
default: text='';break;
}
}
}
document.getElementById('price').innerHTML = text;
}
</script>
<script type="text/javascript">
function DoAllThese() {
calcPackage();
reconPackage();
}
</script>
</head>
<body>
<form id="one" name="theForm" onClick="DoAllThese()">
<p><strong>Choose package that fits you best, then click the button below to get a price:</strong><br/>
<input type="radio" name="gb" value="5">I just use my computer for email and surfing the web. I have a few documents and other files I need to back up.<br/>
<input type="radio" name="gb" value="10">
I have some music and a few files, I am in school/college and need to backup my work.<br/>
<input type="radio" name="gb" value="15">
I have 50 songs, pictures, and documents, I do not want to lose.
<br/>
<input type="radio" name="gb" value="20">
I have a lot of documents that need to be backed up regulary, plus some music.<br/>
<input type="radio" name="gb" value="30">
I own small business and need to backup a few computers.<br/>
<input type="radio" name="gb" value="50">
I have a few 100 songs, and need to protect them!<br/>
<input type="radio" name="gb" value="100">I'm a music and picture hound. My life's collection of MP3s and every picture I've ever taken is on my computer.<br/>
<p>Recommend Package: <span id="recom"></span> GB Plan</p>
</p>
<p>
</p>
<div>$<input name="two" type="text" DISABLED id="price" size="8"></div>
<input type="button" onClick="doMath();" value="Calculate Total"><input type="reset" value="Reset Form" />
<BR><BR>Monthly Total:<SPAN ID="outtab"></SPAN>
<br>Yearly Total:<SPAN ID="outtab1"></SPAN>
</form>
<br><BR>
</body>
</html>