兔八戒
2016-04-24 14:50
<!DOCTYPE html>
<html>
<head>
<title> 事件</title>
<script type="text/javascript">
function count(){
//获取第一个输入框的值
var a=document.getElementById("txt1").value;
//获取第二个输入框的值
var b=document.getElementById("txt2").value;
//获取选择框的值
var c=document.getElementById("select").value;
//获取通过下拉框来选择的值来改变加减乘除的运算法则
var ia=parseInt(a);
var ib=parseInt(b);
if((ia===a)&&(ib===b))
{
switch(c)
{
case "+":
document.getElementById("fruit").value=a+b;
break;
case "-":
document.getElementById("fruit").value=a-b;
break;
case "*":
document.getElementById("fruit").value=a*b;
break;
case "/":
if(b==0)
{
alert("被除数不能为0");
}
else{document.getElementById("fruit").value=a/b;}
break;
}
document.write(document.getElementById("fruit"));
}
else
{alert("请输入整数");}
//设置结果输入框的值
}
</script>
</head>
<body>
<input type='text' id='txt1' />
<select id='select'>
<option value='+'>+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type='text' id='txt2' />
<input type='button' value=' = ' onclick="count()"/> <!--通过 = 按钮来调用创建的函数,得到结果-->
<input type='text' id='fruit' />
</body>
</html>1. 整数不起作用。 我这里的意图是:判断是否为整数,如果是,则继续,不是则弹出提示
2. 加号问题:为什么选择加法的时候,成了两个数字组合了?
比如,1+2 变成了 12 ; 2+6 变成 26
3.
var ia=parseInt(a); var ib=parseInt(b); if((ia===a)||ib===b)
加入这段是对的,那么,是否可以用下面这个替换?
if((parseInt(a)===a)||(parseInt(b)===b))
另外你用parseIn()已近强行把输入的字符串强转为整数了又何必再判断是不是整数?你要判断的是强转之后得到的这个值是不是数字才对,因为有些字符串用parseIn()是不能强转的,最终得到的是NaN;那么你用这个NaN再进行计算就会得到NaN
页面上获取的值,包括数字都会被当成字符串,所以你获取到的a,b都是字符串。搞清楚这个其他问题也就是小问题了
把case后面的a+b,a-b,a*b,a/b都改成ia,ib。因为你是要进行整数运算的,所以这里也要使用整数,而a ,b是字符串,a+b表示字符串的拼接而不是整数相加。
===表示完全相等,即数据类型也必须相同,ia,ib是整型,a,b是字符串,你的判断结果都会是不成立。
另外你 alert("被除数不能为0");这行代码的分号写成中文符号了。
JavaScript进阶篇
469228 学习 · 22584 问题
相似问题