JS问题,不知道是什么原因,没有验证就跳转

代码如下:<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xh... 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>计算器</title>
</head>
<style type="text/css">
#DivCalculate{
border:1px #666666 solid;
margin-left:auto;
margin-right:auto;
width:500px;
height:300px;
padding:10px;
}
body{
text-align:center;
}
td{
font-size:14px;
color:#999999;
height:30px;
}
.STYLE1 {
font-family: "新宋体";
font-weight: bold;
font-size: 24px;
color: #0000FF;
}
.Mytext{
width:150px;
border:1px #333333 solid;
height:22px;
}
</style>

<script type="text/javascript" language="javascript">

function checkedRightful(){

//接收计算器各项的值
var firstNum = document.MyForm.FirstNum.value;
var secondNum = document.MyForm.SecondNum.value;
var operator = document.getElementsByName(Operator);

alert(operator[0].value);

//验证非空输入
if(document.MyForm.FirstNum.value == ""){ //判断第一个数是否为空
window.alert("第一个数不能为空!");
//document.MyForm.FirstNum.focus();
return false;
}

if(document.MyForm.SecondNum.value == ""){ //判断第二个数是否为空
window.alert("第二个数不能为空!");
//document.MyForm.secondNum.focus();
return false;
}

//除数不能为零
if(document.MyForm.SecondNum.value == 0 && operator[3].checked == true){
window.alert("您选择的是除法,除数不能为零!");
//document.MyForm.secondNum.focus();
return false;
}

//验证输入内容是否合法
}
</script>
<body>
<br/>
<br/>
<br/>
<form name="MyForm" onSubmit="return checkedRightful();" action="/restrant/doCalculateServlet" method="get">
<div id="DivCalculate">
<div align="center" class="STYLE1">
计 算 器
</div>
<table width="80%" border="0" cellpadding="5" cellspacing="0">
<tr>
<td colspan="2" align="left">请输入两个数:</td>
</tr>
<tr>
<td width="36%" align="right">第一个数:</td>
<td width="64%">
<input type="text" name="FirstNum" class="Mytext"/>
</td>
</tr>
<tr>
<td align="right">第二个数:</td>
<td>
<input type="text" name="SecondNum" class="Mytext"//>
</td>
</tr>
<tr>
<td colspan="2" align="center">运算符:
<input type="radio" name="Operator" value="+" checked/>加
<input type="radio" name="Operator" value="-"/>减
<input type="radio" name="Operator" value="*"/>乘
<input type="radio" name="Operator" value="/"/>除
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="提 交"/>
<input type="reset" value="重 置"/>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
展开
 我来答
百度网友0c90796
推荐于2016-01-25 · TA获得超过1611个赞
知道大有可为答主
回答量:2638
采纳率:0%
帮助的人:1087万
展开全部
//修改后的代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>计算器</title>
</head>
<style type="text/css">
#DivCalculate{
border:1px #666666 solid;
margin-left:auto;
margin-right:auto;
width:500px;
height:300px;
padding:10px;
}
body{
text-align:center;
}
td{
font-size:14px;
color:#999999;
height:30px;
}
.STYLE1 {
font-family: "新宋体";
font-weight: bold;
font-size: 24px;
color: #0000FF;
}
.Mytext{
width:150px;
border:1px #333333 solid;
height:22px;
}
</style>

<script type="text/javascript" language="javascript">

function checkedRightful(){

//验证非空输入
if(document.MyForm.FirstNum.value == ""){ //判断第一个数是否为空
window.alert("第一个数不能为空!");
//document.MyForm.FirstNum.focus();
return false;
}

if(document.MyForm.SecondNum.value == ""){ //判断第二个数是否为空
window.alert("第二个数不能为空!");
//document.MyForm.secondNum.focus();
return false;
}

//除数不能为零
if(document.MyForm.SecondNum.value == 0 && operator[3].checked == true){
window.alert("您选择的是除法,除数不能为零!");
//document.MyForm.secondNum.focus();
return false;
}

//验证输入内容是否合法
}
</script>
<body>
<br/>
<br/>
<br/>
<form name="MyForm" onSubmit="return checkedRightful();" action="/restrant/doCalculateServlet" method="get">
<div id="DivCalculate">
<div align="center" class="STYLE1">
计 算 器
</div>
<table width="80%" border="0" cellpadding="5" cellspacing="0">
<tr>
<td colspan="2" align="left">请输入两个数:</td>
</tr>
<tr>
<td width="36%" align="right">第一个数:</td>
<td width="64%">
<input type="text" name="FirstNum" class="Mytext"/>
</td>
</tr>
<tr>
<td align="right">第二个数:</td>
<td>
<input type="text" name="SecondNum" class="Mytext"//>
</td>
</tr>
<tr>
<td colspan="2" align="center">运算符:
<input type="radio" name="Operator" value="+" checked/>加
<input type="radio" name="Operator" value="-"/>减
<input type="radio" name="Operator" value="*"/>乘
<input type="radio" name="Operator" value="/"/>除
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="提 交"/>
<input type="reset" value="重 置"/>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>

参考资料: phptogether.com

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
术士2010
2010-08-20 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:91.3万
展开全部
你这里有问题:
var operator = document.getElementsByName(Operator);
根据元素名称取得元素集合,这里的名称应该是指定的,而不是变量,是变量的话就应该给它赋值。所以应该给Operator加上双引号。额,或者单引号也成。楼上的说什么没有调用,根本没仔细去看代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
明日应识将军3374
2010-08-20 · TA获得超过148个赞
知道答主
回答量:169
采纳率:0%
帮助的人:51.5万
展开全部
既然要验证,那就不能用submit,换成button,然后在form的onsubmit事件里验证,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5never17
2010-08-20 · TA获得超过926个赞
知道小有建树答主
回答量:1136
采纳率:0%
帮助的人:412万
展开全部
你没调用方法怎么检测呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式