SunCool
2019-08-19 16:20
<!DOCTYPE html>
<html>
<head>
<title> 事件</title>
<script type="text/javascript">
function count(txt1,txt2,select){
switch(select) {
case "+":
result = parseFloat(txt1) + parseFloat(txt2);
break;
case "-":
result = parseFloat(txt1) - parseFloat(txt2);
break;
case "*":
result = parseFloat(txt1) * parseFloat(txt2);
break;
default:
result = parseFloat(txt1) / parseFloat(txt2);
}
document.getElementById("fruit").value = parseFloat(result);
}
</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>
按照你写的代码,你获取到的值为undefined所以你不管怎么点=号,都只会得出NaN。
用代码表示你的情况:
<!DOCTYPE html> <html> <head> <title> 事件</title> <script type="text/javascript"> var c = parseFloat(a) + parseFloat(b); document.write(a + "和" + b + "的和等于" + c); </script> </head> <body> </body> </html>
正确的代码应为
<!DOCTYPE html> <html> <head> <title> 事件</title> <script type="text/javascript"> function count(){ var txt1 = document.getElementById("txt1").value; //这里是获取id名txt1里value的值 var txt2 = document.getElementById("txt2").value; //这里是获取id名txt2里value的值 var select = document.getElementById("select").value; //这里是获取id名select里value的值 var result; //这里是声明一个变量 switch(select) { case "+": result = parseFloat(txt1) + parseFloat(txt2); break; case "-": result = parseFloat(txt1) - parseFloat(txt2); break; case "*": result = parseFloat(txt1) * parseFloat(txt2); break; default: result = parseFloat(txt1) / parseFloat(txt2); } document.getElementById("fruit").value = parseFloat(result); } </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>
result 没有定义,他不是一个数字所以会报这样的问题,你可以在switch上面定义一下,
方法一:var sum = Number("");或者方法二:var sum = 0;
function count() {
//获取第一个输入框的值
var first = document.getElementById("txt1").value;
//获取第二个输入框的值
var second = document.getElementById("txt2").value;
//获取选择框的值
var sel = document.getElementById("select").value;
if (!isNaN(first) && !isNaN(second)) {
//方法一:
//var sum = Number("");
//方法二:
var sum = 0;
switch (sel) {
case "+":
sum += parseFloat(first) + parseFloat(second);
break;
case "-":
sum += parseFloat(first) - parseFloat(second);
break;
case "*":
sum += parseFloat(first) * parseFloat(second);
break;
case "/":
sum += parseFloat(first) / parseFloat(second);
break;
default:
}
document.getElementById("fruit").value = sum;
} else {
console.log("输入的不是数字");
}
}
输入框的两个值你没有获取,以及符号的那个选择框的值你也没获取
function count(){
//获取第一个输入框的值
var num1=document.getElementById("txt1").value;
//获取第二个输入框的值
var num2=document.getElementById("txt2").value;
//获取选择框的值
var fuhao=document.getElementById("select").value;
var sum
//获取通过下拉框来选择的值来改变加减乘除的运算法则
switch(fuhao){
case "+":sum=parseInt(num1)+parseInt(num2);
break;
case "-":sum=num1-num2;
break;
case "*":sum=num1*num2;
break;
case "/":sum=num1/num2;
break;
default:
}
//设置结果输入框的值
document.getElementById("fruit").value=sum;
}
JavaScript进阶篇
468195 学习 · 21891 问题
相似问题