<!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");这行代码的分号写成中文符号了。