帮忙看下这个jsp页面中JavaScript为何没起作用

yqsshr 2009-07-23 03:33:35

<%@ page language="java" pageEncoding="GBK"%>
<%@ page contentType="text/html;charset=GBK"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>易宝搜索</title>

<style type="text/css">
label {font-size:14px;color:#1E90FF; cursor:pointer;font-weight: 580;}
</style>

<script type="text/javascript">
function checked() {
if(form.key.value == "") {
alert("false");
document.form1.key.focus();
return false;
}
return true;
}
</script>
</head>

<body>
<jsp:include page="/header.html" />
<div align="center">
<form action="query.do" method="get" id="queryForm" onSubmit="return checked(this);">
<input type="text" name="key" style="width:250px; height:18px;border:1px solid #D0D9F7; background-color:#F7F7F7;padding:5px; font-weight:bold; color:#666666; font-size:14px;"/>
<input type="submit" value="易宝搜索" style="width:80px; height:28px; border:0; background:#00BFFF; color:#FFFFFF; font-size:14px; cursor:pointer;"/>
<div align="center">
<label>
<input type="radio" name="resourcetype" value="all" checked>
全 部
<input type="radio" name="resourcetype" value="doc">
文 档
<input type="radio" name="resourcetype" value="pic">
图 片
<input type="radio" name="resourcetype" value="audio">
音 频
<input type="radio" name="resourcetype" value="video">
视 频
</label>
</div>
</form>
</div>
</body>

</html>



现在如果key文本框中的内容为空时就不提交请求,感觉这个JavaScript函数没错啊,但就是不行。。(执行不到js里的checked函数)。那位帮忙看下吧!!谢谢
...全文
138 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangxuebao123 2009-07-23
  • 打赏
  • 举报
回复
不用谢的
yqsshr 2009-07-23
  • 打赏
  • 举报
回复
谢谢,谢谢小杨!!
yangxuebao123 2009-07-23
  • 打赏
  • 举报
回复
(/\s/g)//创建正则表达式样式为


\cx 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。 x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。
\f 匹配一个换页符。等价于 \x0c 和 \cL。
\n 匹配一个换行符。等价于 \x0a 和 \cJ。
\r 匹配一个回车符。等价于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。
\t 匹配一个制表符。等价于 \x09 和 \cI。
\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。
yqsshr 2009-07-23
  • 打赏
  • 举报
回复
form1.key.value.replace(/\s/g,"")
太棒了,就不用自己写trim函数了,,不过小弟初学,能不能解释一下这句话啊,,正则可以这样用吗?
jinchun1234 2009-07-23
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ltxhbh 的回复:]
为什么一定要用form获取值呢  直接document.getElementById("key").value  只要key在页面里就能得到  key要是ID
[/Quote]
ltxhbh 2009-07-23
  • 打赏
  • 举报
回复
为什么一定要用form获取值呢 直接document.getElementById("key").value 只要key在页面里就能得到 key要是ID
rsmove 2009-07-23
  • 打赏
  • 举报
回复
删掉cookie,重新运行试试。
yqsshr 2009-07-23
  • 打赏
  • 举报
回复
会不会和浏览器有关系啊,我用的是腾讯TT
yqsshr 2009-07-23
  • 打赏
  • 举报
回复
我给form家了name="form1"了
yqsshr 2009-07-23
  • 打赏
  • 举报
回复
奇怪,就是有时行,有时不行!!有谁知道怎么回事吗?
lizhangxiong1234 2009-07-23
  • 打赏
  • 举报
回复
给from加上name属性,因为你在javascript函数里面引用到了,<form name="form1"....
然后修改函数如下:就OK!
function checked() {
if(form1.key.value == "") {
alert("false");
document.form1.key.focus();
return false;
}
return true;
}
ltxhbh 2009-07-23
  • 打赏
  • 举报
回复
form1.key.value.replace(/\s/g,"") 得到去空格后的值
ZhaoHuiZiXin 2009-07-23
  • 打赏
  • 举报
回复
<script type="text/javascript">
function checked(formname) {
if(formname.key.value == "") {
alert("false");
document.form1.key.focus();
return false;
}
return true;
}
</script>
改过来试一试.
ZhaoHuiZiXin 2009-07-23
  • 打赏
  • 举报
回复
<script type="text/javascript">
function checked(formname) {
if(form.key.value == "") {
alert("false");
document.form1.key.focus();
return false;
}
return true;
}
</script>

js方法中没有参数.
yqsshr 2009-07-23
  • 打赏
  • 举报
回复
噢,,谢谢楼上的,
那如果输入几个空格后,让表单提交不了呢?我用trim(form1.key.value) == "" 不行啊,谁帮帮忙??
ltxhbh 2009-07-23
  • 打赏
  • 举报
回复
还有为什么你form里是checked(this)带参数的,定义的是checked()无参的?改成一致的就好了吧
ltxhbh 2009-07-23
  • 打赏
  • 举报
回复
给key加上id
<input type="text" id="key" name="key" style="width:250px; height:18px;border:1px solid #D0D9F7; background-color:#F7F7F7;padding:5px; font-weight:bold; color:#666666; font-size:14px;"/>
summer0214 2009-07-23
  • 打赏
  • 举报
回复
form name漏了
<form name="form1"....
JSValidation是强大灵活的客户端验证框架。在应用服务器或者开发框架不提供验证的情况下,例如,普通的JSP, ASP, PHP等开发,以及一些不提供验证支持的开发框架,如Tapestry, Velocity等,JSValidation提供了一种灵活的解决方案。与其他验证方式相比,它最大的优点在于独立与易于集成。纯JavaScript结构,可以很容易的集成到现有的应用而不论现有的应用是基于什么语言。将所有的表单验证集管理,使得维护应用更加容易。简便的XML配置,易于扩充的验证方式(目前支持13种验证,囊括了大部分常用表单验证),使得JSValidation成为验证框架的首选。
1. JSValidation是什么?
如首页所说,JSValidation是客户端表单验证框架,用在BS系统,或者简单的网页系统。表单验证在这些开发很常见:新用户注册,需要校验某些字段;用户登陆,需要校验;等等。在这之前,页面开发者(JavaScript开发者)需要编写大量的JavaScript来与表单对象交互,并进行校验。常见的校验如不能为空,必须满足长度要求,必须为数字,必须为Email等等。根据一般的经验,如果表单需要校验的域个数超过10个,开发过程就显得枯燥无味——多段重复的代码不断重复,如果要求跨浏览器,更多的考虑因素使人头疼不已。往往这个页面的验证还不能用于那个验证……虽然逻辑基本相同;但是在大多数情况下,出于种种原因,开发者宁愿(或者没办法)重新编写另一个页面的JavaScript代码。

JSValidation致力于改善这一过程。它将常见的校验(目前支持13种)封装起来,并创造性的采用xml来存贮表单验证信息,使得表单的验证成为整个项目最不重要的环节,开发者只需要定义几个xml标记,就可以创建出复杂的验证策略,而不用编写一行JavaScript代码。由于采用xml集管理表单验证,使得表单验证在整个系统的耦合度大大降低,并且易维护性大大提高。开发者更多的精力可以投入到业务相关的代码

恰恰相反,JSValidation内部结构虽然不太简单(对用户而言),但是调用方式却极其简单,配置好环境后,只需要在需要验证的表单的HTML标记加上onsubmit="return doValidate('formId')"即可。这并没有改变开发者的习惯。

更为明显的优势是,JSValidation具备跨浏览器的能力。在目前的测试环境下,支持IE5及以上版本,Mozilla系列和支持DOM2模型的其他浏览器。你不用再考虑在多浏览器下如何兼容,JSValidation帮你做到了这些。

2. JSValidation能做什么,不能做什么?
如上所述,JSValidation能够校验表单。在系统复杂,表单复杂的场景下,JSValidation的优势更加突出。JSValidation目前能够完成客户端的13种验证如下:

取值非空
必须为整数
必须为双精度数
必须为普通英文字符(字母,数字,下划线)
必须为文字符
最小长度
最大长度
是否为Email格式
是否为日期格式(yyyy-mm-dd)
自定义的正则表达式
整数范围(大于某数小于某数)
双精度数范围
必须与某个域的值相同
所有这些验证都在客户端完成。如果还有在此之外的验证需求,请告诉我们,我们会跟据需求程度开发出新的验证模型。

JSValidation不能做的:

跨页面的验证。例如,A页面输入值,必须满足B页面某一个值的条件,或者更多的页面。这个需求需要用户的反馈。如果在现实开发这种需求很普遍,我们会考虑开发。目前的替代方式是,将A页面需要验证的值POST到B页面的一个Hidden Field,然后再使用已有的验证方式。
与服务器交互验证。最常见的是输入用户名密码后登录。限于它的表示范围,JSValidation不能完成这个工作。
其他没有提到的,很希望你能告诉我们。

请大家帮忙顶,这么好的东东不能叫他沉了啊

81,115

社区成员

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

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