js代码在改变焦点的时候出现方法is not fond ,为什么呢?
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ page import="com.bean.Triangle" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'triangle.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function checkbiana(){
var sidea = myform.sideA.value;
var reg = /^\d+$/
if(reg.test(sidea)))
{
document.getElementById("a").innerHTML="输入的数据合法";
return true;
}
else{
document.getElementById("a").innerHTML="输入的数据不合法";
document.getElementById("a").style.color="red";
return false;
}
}
function checkbianb(){
var sideb = myform.sideB.value;
var reg = /^\d+$/
if(reg.test(sideb)))
{
document.getElementById("b").innerHTML="输入的数据合法";
return true;
}
else{
document.getElementById("b").innerHTML="输入的数据不合法";
document.getElementById("b").style.color="red";
return false;
}
}
function checkbianc(){
var sidec = myform.sideC.value;
var reg = /^\d+$/
if(reg.test(sidec)))
{
document.getElementById("c").innerHTML="输入的数据合法";
return true;
}
else{
document.getElementById("c").innerHTML="输入的数据不合法";
document.getElementById("c").style.color="red";
return false;
}
}
function cleck(){
if(checkbiana()&&checkbianb()&&checkbianc())
{
return true;
}
else{
alert("输入数据错误请重新输入");
return false;
}
}
</script>
</head>
<body>
<form action="" name="myform" method="post" onsubmit="return cleck();">
输入三角形的边A:<input type="text" name="sideA"/><span id="a">请输入数字</span><br/>
输入三角形的边B:<input type="text" name="sideB" onfocus="checkbiana()"/><span id="b">请输入数字</span><br/>
输入三角形的边C:<input type="text" name="sideC" onfocus="checkbianb();" /><span id="c">请输入数字</span><br/>
<input type="submit" value="提交" />
</form>
<jsp:useBean id="triangle" class="com.bean.Triangle"></jsp:useBean>
<jsp:setProperty property="*" name="triangle"/>
边A的长度是<jsp:getProperty property="sideA" name="triangle"/><br/>
边B的长度是<jsp:getProperty property="sideB" name="triangle"/><br/>
边C的长度是<jsp:getProperty property="sideC" name="triangle"/><br/>
能构成三角形么?<jsp:getProperty property="triangle" name="triangle"/><br/>
三角形的面积:<jsp:getProperty property="area" name="triangle"/>
</body>
</html>
[解决办法]
我看到了两处有可能会导致错误的地方,楼主可以修改下试试。
第一处:var sidea = myform.sideA.value;//此处你直接使用myform,但是我没看见你有定义这个myform变量啊?所以推荐你在所有方法的最上方增加一句 var myform = document.myform;
第二处:var reg = /^\d+$/
第一个就是这个不用用引号引住吗?这样写应该不对吧?"/^\d+$/"这样写才对吧?还有一个就是你为什么不给他后面加分号呢? var reg = "/^\d+$/";
[解决办法]
alert取不到值,说明你就没有获得输入框的id,怎么能拿到焦点。
[解决办法]
if(reg.test(sidec)))
改为
if(reg.test(sidec))
每一个都多了 半个 括号