求助!琢磨了好久,求大神解答!!!

xlx1314 2015-10-21 07:34:10
<%-- 
Document : cal
Created on : 2015-10-12, 14:21:51
Author : acer
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>计算器</title>

<script>

function isNumber(str)
{
var num = "0123456789.-";
for(var i=0;i<str.length;i++)
{
var ch = str.charAt(i);
if(num.indexOf(ch)==-1)
return false;
}
return true;
}
function check()
{
var n1 = document.getElementById("num1").value;
var n2 = document.getElementByld("num2").value;
if(!isNumber(n1)||!isNumber(n2))
{
alert("请输入数字!");
return false;
}
return true;
}
</script>
</head>
<%
String num1 = request.getParameter("num1");
String num2 = request.getParameter("num2");
String operator = request.getParameter("operator");
if(num1==null)
num1 = "0";
if(num2==null)
num2 = "0";
if(operator==null)
operator = "+";
double n1 = Double.parseDouble(num1);
double n2 = Double.parseDouble(num2);
double result = 0;
if(operator.equals("+"))
result = n1+n2;
else if(operator.equals("-"))
result = n1-n2;
else if(operator.equals("*"))
result = n1*n2;
else
result = n1/n2;
%>
<body>
<form action="cal.jsp" method="post">
<h1>简易计算器</h1>
第一个操作数:<input type="text" name="num1" id="num1" value=<%=n1%> /><br>
第二个操作数:<input type="text" name="num2" id="num2" value=<%=n2%> /><br>
操作:<select name="operator">
<option value="+"<%if(operator.equals("+")) out.println("selected");%>>+</option>
<option value="-"<%if(operator.equals("-")) out.println("selected");%>>-</option>
<option value="*"<%if(operator.equals("*")) out.println("selected");%>>*</option>
<option value="/"<%if(operator.equals("/")) out.println("selected");%>>/</option>
</select>
<input type="submit" value="计算" name="button1"onclick="return check()" /><br>
计算结果:<%=result%>
</form>
</body>
</html>


输入英文的时候没有出现警告,报错。想问大神怎么回事,找了好久也不知道哪里错了。
...全文
155 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_16979125 2015-10-27
  • 打赏
  • 举报
回复
引用 6 楼 xlx1314 的回复:
[quote=引用 3 楼 qq_16979125 的回复:] 我看了半天,然后拿你的代码试了一下!!我竟然发现 “var n1 = document.getElementById("num1").value; var n2 = document.getElementByld("num2").value;” 里的document.getElementByld("num2").value;的byid是LD
LD??不懂,求解[/quote] 你的id打成ld了 ID打成LD懂?
xlx1314 2015-10-24
  • 打赏
  • 举报
回复
引用 3 楼 qq_16979125 的回复:
我看了半天,然后拿你的代码试了一下!!我竟然发现 “var n1 = document.getElementById("num1").value; var n2 = document.getElementByld("num2").value;” 里的document.getElementByld("num2").value;的byid是LD
LD??不懂,求解
xlx1314 2015-10-24
  • 打赏
  • 举报
回复
引用 2 楼 u010052814 的回复:
输入的是 "dsfsdfsasd" 转成double出异常了, 限制只能输入数字
我想要实现的是,在输入一些英文字符的时候能实现alert("请输入数字!");这个语句,而不是直接报出异常,请问是哪里写错了吗?
xlx1314 2015-10-24
  • 打赏
  • 举报
回复
引用 1 楼 bear1988 的回复:
你是在做一个计算器? 是不是随便输入了一些英文字符? 报错信息里提示了,数字格式异常NumberFormatException: For Input String...
是的,做一个简易的计算器。随便输入一些英文字符是因为想要测试alert("请输入数字!");这一句能否实现
qq_16979125 2015-10-22
  • 打赏
  • 举报
回复
我看了半天,然后拿你的代码试了一下!!我竟然发现 “var n1 = document.getElementById("num1").value; var n2 = document.getElementByld("num2").value;” 里的document.getElementByld("num2").value;的byid是LD
我有时不是我 2015-10-22
  • 打赏
  • 举报
回复
输入的是 "dsfsdfsasd" 转成double出异常了, 限制只能输入数字
bear1988 2015-10-22
  • 打赏
  • 举报
回复
你是在做一个计算器?
是不是随便输入了一些英文字符?

报错信息里提示了,数字格式异常NumberFormatException: For Input String...


87,955

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧