调用JavaScript函数易错点

5 篇文章 0 订阅
1 篇文章 0 订阅

本意是调用JavaScript定义的validate方法判断多选框中是否没有任何被选中的框,若是,则不跳转,并弹出对话框提醒

源代码如下

html界面

<%@ page language="java" contentType="text/html;charset=UTF-8"

   pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<script type="text/javascript"src="../js/Option_Check.js"></script>

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

    <formaction="Success.jsp" onSubmit="validate(this)">

       <inputtype="checkbox" name="check" value="badman"/><b>badman</b>

       <inputtype="checkbox" name="check" value="superman"/><b>superman</b>

       <inputTYPE="submit" value="ok" />

    </form>

</body>

</html>


 

 

js代码

function validate(f){

 var field=f.check;

 var i=0;

 for(;i<field.length;i++){

  if(field[i].checked){

   

   return true;

  }

 }

 alert("未选择任何一项");

 return false;

}


 


结果能弹出一个对话框提示“未选择任何一项”,但是点击确定后依旧转移到Success.jsp界面

错误在于调用的方式错了(onSubmit="validate(this)")

受Java的影响,调用有返回数据的方法直接调用即可,但是JavaScript中需要加上return关键字才能得到函数返回的值

 

正确的html语句

<%@ page language="java" contentType="text/html;charset=UTF-8"

   pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<script type="text/javascript"src="../js/Option_Check.js"></script>

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

    <formaction="Success.jsp" onSubmit="return validate(this)">

       <inputtype="checkbox" name="check" value="badman"/><b>badman</b>

       <inputtype="checkbox" name="check" value="superman"/><b>superman</b>

       <inputTYPE="submit" value="ok" />

    </form>

</body>

</html>


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值