第一种方法:直接按钮中加入
当点击提交后,提交按钮变灰色不可用,这样可有效防止重复提交,本代码就是实现这样一个功能。从代码就可以看出,我们只需在提交按钮上加入这一句: onclick="javascript:{this.disabled=truedocument.form1.submit()}",意思是当按钮点击后,将按钮的不可用属性设置为true,这样按钮就变灰了
<html><head>
<meta http-equiv="Content-Type" content="text/html charset=gb2312">
<title>表单提交后按钮变成灰色</title>
</head>
<body>
<form name=form1 method="POST" action="/" target=_blank>
<p><input type="text" name="T1" size="20"><input type="button" value="提交" onclick="javascript:{this.disabled=truedocument.form1.submit()}">
<input type="reset" value="重置" name="B2"></p>
</form>
</body>
</html>
第二种方法:通过onSubmit事件实现,并且可以将变灰按钮变为可用
在form里面添加 onSubmit事件,如果表单加入了判断,那么这个方法直接就可以用了,记住就放到最后,否则一开始就为灰了,但我们加上了一个使提交按钮变为可用的代码,
即可防止重复提交信息,也可以防止代码问题导致不可提交的情况
<form name=form1 action="" onSubmit=" return closebut()" ><input name="imageField" type="submit" class="inputbut" value="确定" /><br>
<input type="button" name="hui" id="hui" value="让提交按钮可用" onclick="document.form1.imageField.disabled=false" />
</form>
<script>
function closebut(){
document.form1.imageField.disabled=true
}
</script>
第三种,跟上面的类似
<!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/htmlcharset=gb2312">
<meta name="keywords" content="站长,网页特效,js特效,js脚本,脚本,广告代码" />
<meta name="description" content="www.jb51.net,站长特效网,站长必备js特效及广告代码。大量高质量js特效,提供高质量广告代码下载,尽在站长特效网" />
<title>网页特效 表单提交后按钮变灰效果三</title>
</head>
<body>
<a href="http://www.jb51.net/">脚本之家</a>,站长必备的高质量网页特效和广告代码。<hr>
<!--欢迎来到脚本之家,我们网站收集大量高质量js特效,提供许多广告代码下载,网址:<A href="http://www.jb51.net">www.jb51.net</A>,用.net打造靓站-->
<script language="javascript">
function submitonce(jb51_net){
if(document.all||document.getElementById){
for(i=0i<jb51_net.lengthi++){
var tempobj=jb51_net.elements[i]
if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")
tempobj.disabled=true
}
}
}//欢迎来到站长特效网,我们的网址是www.jb51.net,很好记,zz站长,js就是js特效,本站收集大量高质量js代码,还有许多广告代码下载。
</script>
<form action="http://www.jb51.net" method="post" name="jb51_net" onSubmit="submitonce(this)">
<input type="text" name="name">
<input type="submit" name="submit1" value="提交">
</form>
</body>
</html>
直接试用disable不同浏览器及版本的兼容例外多,不建议直接disable超链接.
以下通过调整样式和行为的方式实现上述需求:
定义一个超链接"变成"普通html文本的样式
在某个行为中触发"变灰"
在原链接的事件中加入如果已经有"变灰"的class则直接返回
在另外的行为中恢复"正常"
以下为模拟的代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<style>
/* "变灰"效果*/
.disableHref{
cursor:default
color:#E5E0E0
text-decoration:none
}
</style>
<script>
// 禁用超链接-"变灰"
function disableHref(){
var hrefDom = document.getElementById("testHref")
hrefDom.className+=" disableHref"
}
// 启用超链接-"正常"
function enableHref(){
var hrefDom = document.getElementById("testHref")
hrefDom.className=hrefDom.className.replace(" disableHref","")
}
// 超链接点击事件
function hrefClick(){
var target=event.target
if(target.className.indexOf("disableHref")>-1){
// 加入判断,有"变灰"时返回
return false
}
// do something u need
// for example
alert("jump previous")
}
</script>
</HEAD>
<BODY>
<a href="javascript:" id="testHref" onclick="hrefClick()" class="ttt">test href</a>
<input type="button" id="btnDisableHref" onclick="disableHref()" value="Disable href" />
<input type="button" id="btnEnableHref" onclick="enableHref()" value="Enable href" />
</BODY>
</HTML>
JavaScript禁用文本框或者禁止文本框的输入方法仅供参考:方法1、设置文本框的ReadOnly选项
<input type="text" value="此处文本不可修改" readonly/>
在JavaScript中,可以使用以下代码启用或禁用问框框的输入功能:
document.all.textInputID.readOnly = false
采用这种方法的好处是在基于SSH(Struts + Spring + HIbernate)框架的设计中,我们能够通过Form调用到该文本框。当然,其它方法也调用不到,本文结尾处将略作介绍。
方法2、设置文本框的Disable属性
<input type="text" value="该文本框不可用" disabled/>
相应的JavaScript代码如下:
document.all.textInputID.disabled = true
方法3、在对象focus时立刻让它blur,使它无法获得焦点
<input type="text" value="onfocus=this.blur()" onfocus="this.blur()"/>
提示:readonly和disabled的区别在于后者完全禁止与该对象的交互(表现为不可改写、不可提交等),而readonly是可以提交的