如何在javascript中让一个链接变成灰色,不可点击?

JavaScript016

如何在javascript中让一个链接变成灰色,不可点击?,第1张

直接试用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>

第一种方法:直接按钮中加入

当点击提交后,提交按钮变灰色不可用,这样可有效防止重复提交,本代码就是实现这样一个功能。从代码就可以看出,我们只需在提交按钮上加入这一句: 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>

你说的是ie的插件,肯定没有用的

ff下可以用遮罩。。或者js

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

<script type="text/javascript">

window.onload=function(){ //网页变灰

grayscale(document.body)

}

</script>

grayscale.js,你网上搜一下吧