【郁悶?zāi)睦锍鲥e(cuò)了】使用JS完成一個(gè)簡(jiǎn)單的計(jì)算器功能。實(shí)現(xiàn)2個(gè)輸入框中輸入整數(shù)后,點(diǎn)擊第三個(gè)輸入框能給出2個(gè)整數(shù)的加減乘除。
為什么我的+-*/的運(yùn)算結(jié)果是nan?我承認(rèn)我寫的好像很復(fù)雜。剛才看了下童鞋的代碼,好像根本沒(méi)必要這么復(fù)雜
鄙人的代碼如下。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無(wú)標(biāo)題文檔</title>
<script type="text/javascript">
var m1;//第一個(gè)數(shù)
var fuhao;//運(yùn)算符號(hào)
var m2;//第二個(gè)數(shù)
var jieguo;//運(yùn)算結(jié)果
function a1()
{var m1=document.getElementById('m1').value;}//執(zhí)行函數(shù)a1時(shí),抓取id為m1的值,并賦值給變量m1。
function f1()
{var fuhao=document.getElementById('fuhao').value;}//執(zhí)行函數(shù)f1時(shí),抓取id為fuhao的值,并賦值給變量fuhao。
function a2()
{var m2=document.getElementById('m2').value;}//執(zhí)行函數(shù)a2時(shí),抓取id為m2的值,并賦值給變量m2。
function a3()
{
if(fuhao='+'){jieguo=m1+m2}
else if(fuhao='-'){jieguo=m1-m2}
else if(fuhao='*'){jieguo=m1*m2}
else if(fuhao='/'){jieguo=m1/m2}
else{jieguo='您輸入的符號(hào)暫時(shí)不能計(jì)算結(jié)果'}
window.alert(jieguo);
}
</script>
</head>
<body>
<form>
<input id="m1" type="text" value="請(qǐng)輸入第一個(gè)數(shù)值" onBlur="a1()"/>
<select id="fuhao" onFocus="f1()" >
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
<option value="#">#</option>
</select>
<input id="m2" type="text" value="請(qǐng)輸入第二個(gè)數(shù)值" onBlur="a2()"/>
<input id="dengyu" type="button" value="點(diǎn)擊彈出結(jié)果" onClick="a3()"/>
</form>
</body>
</html>
2016-04-01
1. 代碼冗余過(guò)多、注意簡(jiǎn)化代碼(我只是修改了錯(cuò)誤、代碼簡(jiǎn)化就不多說(shuō)了)
2. 注意賦值和判斷
3. 在select 的 onfocus函數(shù)第一次沒(méi)有點(diǎn)擊聚焦就沒(méi)有用,從而顯示符號(hào)不對(duì)無(wú)法計(jì)算!
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無(wú)標(biāo)題文檔</title>
<script type="text/javascript">
var m1;//第一個(gè)數(shù)
var fuhao;//運(yùn)算符號(hào)
var m2;//第二個(gè)數(shù)
var jieguo;//運(yùn)算結(jié)果
function a1()
{ m1=Number(document.getElementById('m1').value);}
function f1()//這方法基本上是多余的、你可以直接寫在a3()里面獲取符號(hào)
{ fuhao=document.getElementById('fuhao').value;}
function a2()
{ m2=Number(document.getElementById('m2').value);}
function a3()
{ ? ? ? ?//注意m1和m2的值(強(qiáng)制類型轉(zhuǎn)換Number()或parseInt()等)
f1();//重置獲取符號(hào)調(diào)用 f1()
if(fuhao=='+'){jieguo=m1+m2}//注意=和==(=是賦值,==是判斷)
else if(fuhao=='-'){jieguo=m1-m2}
else if(fuhao=='*'){jieguo=m1*m2}
else if(fuhao=='/'){jieguo=m1/m2}
else{jieguo='您輸入的符號(hào)暫時(shí)不能計(jì)算結(jié)果'}
window.alert(jieguo);
}
</script>
</head>
<body >
<form>
<input id="m1" type="text" value="請(qǐng)輸入第一個(gè)數(shù)值" onBlur="a1()"/>
<select id="fuhao" ?>
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input id="m2" type="text" value="請(qǐng)輸入第二個(gè)數(shù)值" onBlur="a2()"/>
<input id="dengyu" type="button" value="點(diǎn)擊彈出結(jié)果" onClick="a3()"/>
</form>
</body>
</html>
2016-04-11
下拉列表里面的onfocus函數(shù)是需要鼠標(biāo)點(diǎn)進(jìn)去的事件(我是這樣理解的)
官方說(shuō)法:對(duì)象獲得焦點(diǎn)時(shí)觸發(fā)