月度归档:2010年05月

模拟阴影效果纯CSS圆角矩形

项目上需要个弹出菜单,要求要阴影+圆角。。阴影不敢用PNG格式,客户大多是使用IE6的,用滤镜又不好控制。干脆搞个纯CSS的像素圆角+阴影(模拟)吧,哈哈。  
 
思路是这样的:   
 

 

 

 

 

 

 

 

代码如下:  

CSS

.bBox{width:300px;}
.bBox-t1,.bBox-t2,.bBox-b1,.bBox-b2{height:1px;overflow:hidden; margin:0px;}
.bBox-t1{border:0px;margin:0px 2px 0px 1px;}
.bBox-t2{border-width:0px 1px;border-style:solid;margin-right:1px;}
.bBox-offset{margin:0px;border:0px;}
.bBox-body{border-width:0px 1px;border-style:solid;margin-right:1px;}
.bBox-b2{background:#88CB8C;border-width:0px 2px 0px 0px;border-style:solid;margin-left:1px;}
.bBox-b1{margin:0px 1px 0px 2px;}
.bBox-body *{margin:0px;}
/*边框颜色*/
.bBox-t1,.bBox-b2{background:#88CB8C;}
.bBox-t2,.bBox-body{border-color:#88CB8C;}
/*背景颜色*/
.bBox-t2,.bBox-body{background:#B8E0BA;}
/*阴影颜色*/
.bBox-offset,.bBox-b1{background:#0D7813;}
.bBox-b2{border-color:#0D7813}
/*———————————*/

HTML

<div class=”bBox”>
    <div class=”bBox-t1″></div>
    <div class=”bBox-t2″></div>
    <div class=”bBox-offset”>
        <div class=”bBox-body”>
                <h1>模拟阴影效果纯CSS圆角矩形</h1>
                <ul>
                    <li>调用方便</li>
                    <li>支持多浏览器</li>
                    <li>快捷更换边框、背景及阴影颜色</li>
                </ul>
        </div>
    </div>
    <div class=”bBox-b2″></div>
    <div class=”bBox-b1″></div>
</div>

 

效果:

 

 

 

 

 

 

 

 

 

就取名bBox吧~支持ie,firefox,chrome,其他的没试过,替换颜色和调用还是相当方便的。本来想把背景颜色,边框颜色,阴影颜色写在一起,每次只要改3个地方就行,可是bBox-b2实在是太郁闷了,搞不定,只能麻烦点,每次改6个地方了。

JavaScript 的JSON和数组混杂区分

Javascript代码:

var person = { personalInfo:{} , linkmans:[] , accounts:[] , handlers:[] } ;

等我来解释一下:
  首先,person 是一个 json ,它包含四个东东:personalInfo , linkmans, accounts, handlers
  接着,personalInfo 是一个 json ,
           而 这三个 linkmans, accounts, handlers 都分别为 数组

“javascript 脚本‘不支持此属性或方法’错误”主要原因

 

出现“javascript 脚本‘不支持此属性或方法’错误”主要有以下几种原因:

1、方法对应的js函数未定义,如

onclick=”select();”

中,

select()

没有定义,或没有把相应的.js文件包含进来,包含的方法:

<script language=”javascript” src=”xxxx.js”></script>。

 

2、在html中的表单中出现这个问题时,可能是元素的名称和函数的名称相同。这时aspX解释时,会进行把函数当成是元素名,然后认为后面的函数的括号是未定义的函数。如:

 

<script language=”javascript”>

<!–

function ffff()

    … …

end function

–>

</script>

<input name=”aa” type=”button” value=”重置密码” onclick=”ffff();”>

<input name=”ffff” type=”button” value=”sfsdfa” onclick=”ffff();”>

 

上面这个语句通常就会报“对象不支持此属性或方法”的错误。这时,只需要把name=”ffff”改成别的名字或把函数改成别的名字就正常了。

js动态操作表格

<!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=gb2312″> 
<title>js动态操作表格</title> 
<script language=”javascript”> 
 function init(){    
     _table=document.getElementById(“table”);  
     _table.border=”1px”;  
     _table.width=”800px”;  
      
    for(var i=1;i<6;i++){  
         var row=document.createElement(“tr”);    
         row.id=i;  
         for(var j=1;j<6;j++){  
             var cell=document.createElement(“td”);    
             cell.id=i+”/”+j;  
             cell.appendChild(document.createTextNode(“第”+cell.id+”列”));    
             row.appendChild(cell);    
         }  
         document.getElementById(“newbody”).appendChild(row);    
     }  
 }    
   
 function rebulid(){  
    var beginRow=document.getElementById(“beginRow”).value;/*开始行*/  
    var endRow=document.getElementById(“endRow”).value;/*结束行*/  
    /*/*/  
    var beginCol=document.getElementById(“beginCol”).value;/*开始列*/  
    var endCol=document.getElementById(“endCol”).value;/*结束列*/  
      
    var tempCol=beginRow+”/”+beginCol;/*定位要改变属性的列*/  
    alert(tempCol);  
    var td=document.getElementById(tempCol);  
    for(var x=beginRow;x<=endRow;x++){  
        for(var i=beginCol;i<=endCol;i++){  
          if(x==beginRow){  
            document.getElementById(“table”).rows[x].deleteCell(i+1);  
          }  
          else{  
             document.getElementById(“table”).rows[x].deleteCell(i);  
          }  
              
        }  
    }  
    td.rowSpan=(endRow-beginRow)+1;  
}  
 /*添加行,使用appendChild方法*/  
 function addRow(){  
   var length=document.getElementById(“table”).rows.length;  
   /*document.getElementById(“newbody”).insertRow(length);  
   document.getElementById(length+1).setAttribute(“id”,length+2);*/  
   var tr=document.createElement(“tr”);  
   tr.id=length+1;  
   var td=document.createElement(“td”);  
   for(i=1;i<4;i++){  
    td.id=tr.id+”/”+i;  
    td.appendChild(document.createTextNode(“第”+td.id+”列”));  
    tr.appendChild(td);  
     
   }  
  document.getElementById(“newbody”).appendChild(tr);    
 }   
   
 function addRow_withInsert(){  
    var row=document.getElementById(“table”).insertRow(document.getElementById(“table”).rows.length);  
    var rowCount=document.getElementById(“table”).rows.length;  
      
    var countCell=document.getElementById(“table”).rows.item(0).cells.length;  
    for(var i=0;i<countCell;i++){  
      var cell=row.insertCell(i);  
       
      cell.innerHTML=”新”+(rowCount)+”/”+(i+1)+”列”;  
      cell.id=(rowCount)+”/”+(i+1);  
        
      }  
 }  
   
 /*删除行,采用deleteRow(row Index)*/  
 function removeRow(){  
  /* var row=document.getElementById(“2”);   
   var index=row.rowIndex;  
   alert(index);*/  
   document.getElementById(“newbody”).deleteRow(document.getElementById(document.getElementById(“table”).rows.length).rowIndex);   
 }  
   
 /*添加列,采用insertCell(列位置)方法*/  
 function addCell(){  
 /*document.getElementById(“table”).rows.item(0).cells.length  
  用来获得表格的列数  
 */  
    for(var i=0;i<document.getElementById(“table”).rows.length;i++){  
        var cell=document.getElementById(“table”).rows[i].insertCell(2);  
        cell.innerHTML=”第”+(i+1)+”/”+3+”列”;  
          
    }  
 }  
 /*删除列,采用deleteCell(列位置)的方法*/  
 function removeCell(){  
    for(var i=0;i<document.getElementById(“table”).rows.length;i++){  
        document.getElementById(“table”).rows[i].deleteCell(0);  
    }  
}  
</script> 
</head> 
 
<body onLoad=”init();”> 
 
 <table  id=”table” align=”center”>    
     <tbody id=”newbody”></tbody>    
       
 </table>   
  <div> 
    <table width=”800px” border=”1px” align=”center”> 
        <tr><td align=”center”><input type=”button” id=”addRow” name=”addRow” onClick=”addRow();” value=”添加行”/></td><td align=”center”><input type=”button” id=”delRow” name=”delRow” onClick=”removeRow();” value=”删除行”/></td></tr> 
      <tr><td align=”center”><input type=”button” id=”delCell” name=”delCell”  onClick=”removeCell();” value=”删除列”/></td><td align=”center”><input type=”button” id=”addCell” name=”addCell” onClick=” addCell();” value=”添加列”/></td></tr> 
     <tr><td align=”center” colspan=”2″><input type=”button” id=”addRows” name=”addRows”  onClick=”addRow_withInsert();” value=”添加行”/></td></tr> 
    </table> 
 </div> 
 <div> 
    <table width=”800px” border=”1px” align=”center”> 
        <tr><td>从第<input type=”text” id=”beginRow” name=”beginRow”  value=””/>行到<input type=”text”  name=”endRow”  id=”endRow” value=””/>行</td><td rowspan=”2″  id=”test”><input type=”button” name=”hebing” id=”hebing” value=”合并” onClick=”rebulid();”/></td></tr> 
      <tr><td>从第<input type=”text” name=”beginCol” id=”beginCol” value=””/>列到<input type=”text” name=”endCol” id=”endCol” value=””/>列</td></tr> 
    </table> 
 </div> 
</body> 
</html> 

完美兼容IE、FF、Opera的Ajax类支持get、post、自定义回调函数(转载待测)

Js代码

function Ajax(){  
    this.httpXML=false;  
    this.init();  
}  
Ajax.prototype.init=function(){  
    if(window.XMLHttpRequest){  
        this.httpXML=new XMLHttpRequest();   
        if (this.httpXML.overrideMimeType){  
            this.httpXML.overrideMimeType(“text/xml”);   
        }  
    }else if(window.ActiveXObject){  
        try{this.httpXML = new ActiveXObject(“Msxml2.XMLHTTP”);}catch (e){   
             try{this.httpXML = new ActiveXObject(“Microsoft.XMLHTTP”);}catch (e){}   
        }  
    }  
    if(!this.httpXML){  
        window.alert(“can’t create XMLHttpRequest object”);  
        return null;  
    }  
}  
Ajax.prototype.send=function(_method,_url,_data,_callback){  
    this.httpXML.onreadystatechange=function(){  
        if(this.readyState==4&&this.status==200){  
            _callback.call(this,this.responseText);  
        }  
    }  
      
    if (_method.toLowerCase() == “get”){   
         //if(navigator.userAgent.indexOf(“MSIE”)<=0){  
         //     netscape.security.PrivilegeManager.enablePrivilege(“UniversalBrowserRead”);  
         //}  
         this.httpXML.open(_method, _url, true);   
         this.httpXML.send(null);   
    }else if (_method.toLowerCase() == “post”){   
         this.httpXML.open(_method, _url, true);   
         this.httpXML.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);   
         this.httpXML.send(_data);   
    }   
      
}  
 
Ajax.prototype.callback=function(){  
       

function Ajax(){
 this.httpXML=false;
 this.init();
}
Ajax.prototype.init=function(){
 if(window.XMLHttpRequest){
  this.httpXML=new XMLHttpRequest();
  if (this.httpXML.overrideMimeType){
            this.httpXML.overrideMimeType(“text/xml”);
        }
 }else if(window.ActiveXObject){
  try{this.httpXML = new ActiveXObject(“Msxml2.XMLHTTP”);}catch (e){
             try{this.httpXML = new ActiveXObject(“Microsoft.XMLHTTP”);}catch (e){}
        }
 }
 if(!this.httpXML){
  window.alert(“can’t create XMLHttpRequest object”);
  return null;
 }
}
Ajax.prototype.send=function(_method,_url,_data,_callback){
    this.httpXML.onreadystatechange=function(){
        if(this.readyState==4&&this.status==200){
      _callback.call(this,this.responseText);
     }
    }
   
    if (_method.toLowerCase() == “get”){
         //if(navigator.userAgent.indexOf(“MSIE”)<=0){
         //     netscape.security.PrivilegeManager.enablePrivilege(“UniversalBrowserRead”);
         //}
         this.httpXML.open(_method, _url, true);
         this.httpXML.send(null);
    }else if (_method.toLowerCase() == “post”){
         this.httpXML.open(_method, _url, true);
         this.httpXML.setRequestHeader(“Content-Type”, “application/x-www-form-urlencoded”);
         this.httpXML.send(_data);
 }
 
}

Ajax.prototype.callback=function(){
 
}

Html代码

<!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>完美兼容IE、FF、Opera浏览器</title> 
    <script type=”text/javascript” src=”js/ajax.js”></script> 
    <script type=”text/javascript”> 
        function send(){  
            ajax=new Ajax();  
            ajax.send(“get”,”listener/Hajax.ashx”,”post测试请求”,ddd);  
        }  
          
        function ddd(data){  
            alert(data);  
        }  
    </script> 
</head> 
<body> 
    <button onclick=”send()”>测试</button> 
</body> 
</html> 

<!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>完美兼容IE、FF、Opera浏览器</title>
    <script type=”text/javascript” src=”js/ajax.js”></script>
    <script type=”text/javascript”>
        function send(){
            ajax=new Ajax();
            ajax.send(“get”,”listener/Hajax.ashx”,”post测试请求”,ddd);
        }
       
        function ddd(data){
            alert(data);
        }
    </script>
</head>
<body>
    <button onclick=”send()”>测试</button>
</body>
</html>

javascript 读取xml 数据

<?xml version=”1.0″ encoding=”gb2312″?>   
<treeview>   
<tree id=”p1″>   
<text>山东省</text>   
<target>_blank</target>   
<title>省份</title>   
<link></link>   
<tree id=”p1-1″>   
<text>威海市</text>   
<target>_blank</target>   
<title>城市</title>   
<link></link>   
</tree>   
<tree id=”p1-2″>   
<text>烟台市</text>   
<target>_blank</target>   
<title>城市</title>   
<link></link>   
<node id=”p1-2-1″>   
<text>长夼村</text>   
<target>_blank</target>   
<title>乡镇</title>   
<link>http://www.baidu.com/</link>   
</node>   
</tree>   
<node id=”p1-3″>   
<text>富镇</text>   
<target>_blank</target>   
<title>乡镇</title>   
<link>http://www.baidu.com/</link>   
</node>   
</tree>   
 
<tree id=”p2″>   
<text>河北省</text>   
<target>_blank</target>   
<title>省份</title>   
<link></link>   
<tree id=”p2-1″>   
<text>泊头市</text>   
<target>_blank</target>   
<title>城市</title>   
<link></link>   
<node id=”p2-1-1″>   
<text>郊河</text>   
<target>_blank</target>   
<title>乡镇</title>   
<link>http://www.baidu.com/</link>   
</node>   
</tree>   
<tree id=”p2-2″>   
<text>石家庄</text>   
<target>_blank</target>   
<title>城市</title>   
<link></link>   
</tree>   
</tree>   
 
<tree id=”p3″>   
<text>浙江省</text>   
<target>_blank</target>   
<title>省份</title>   
<link></link>   
<tree id=”p3-1″>   
<text>杭州市</text>   
<target>_blank</target>   
<title>城市</title>   
<link></link>   
<node id=”p3-1-1″>   
<text>某镇</text>   
<target>_blank</target>   
<title>乡镇</title>   
<link>http://www.baidu.com/</link>   
</node>   
</tree>   
<tree id=”p3-2″>   
<text>温州市</text>   
<target>_blank</target>   
<title>城市</title>   
<link></link>   
<node id=”p3-2-1″>   
<text>某镇</text>   
<target>_blank</target>   
<title>乡镇</title>   
<link>http://www.baidu.com/</link>   
</node>   
</tree>   
</tree>   
</treeview>  

 

<?xml version=”1.0″ encoding=”gb2312″?>
<treeview>
<tree id=”p1″>
<text>山东省</text>
<target>_blank</target>
<title>省份</title>
<link></link>
<tree id=”p1-1″>
<text>威海市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
</tree>
<tree id=”p1-2″>
<text>烟台市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
<node id=”p1-2-1″>
<text>长夼村</text>
<target>_blank</target>
<title>乡镇</title>
<link>http://www.baidu.com/</link>
</node>
</tree>
<node id=”p1-3″>
<text>富镇</text>
<target>_blank</target>
<title>乡镇</title>
<link>http://www.baidu.com/</link>
</node>
</tree>

<tree id=”p2″>
<text>河北省</text>
<target>_blank</target>
<title>省份</title>
<link></link>
<tree id=”p2-1″>
<text>泊头市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
<node id=”p2-1-1″>
<text>郊河</text>
<target>_blank</target>
<title>乡镇</title>
<link>http://www.baidu.com/</link>
</node>
</tree>
<tree id=”p2-2″>
<text>石家庄</text>
<target>_blank</target>
<title>城市</title>
<link></link>
</tree>
</tree>

<tree id=”p3″>
<text>浙江省</text>
<target>_blank</target>
<title>省份</title>
<link></link>
<tree id=”p3-1″>
<text>杭州市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
<node id=”p3-1-1″>
<text>某镇</text>
<target>_blank</target>
<title>乡镇</title>
<link>http://www.baidu.com/</link>
</node>
</tree>
<tree id=”p3-2″>
<text>温州市</text>
<target>_blank</target>
<title>城市</title>
<link></link>
<node id=”p3-2-1″>
<text>某镇</text>
<target>_blank</target>
<title>乡镇</title>
<link>http://www.baidu.com/</link>
</node>
</tree>
</tree>
</treeview>

然后:javascript函数实现:(文件名称:tree.htm)
Java代码

<script Language=”JavaScript”>   
var HTML = “”;   
var space = “”;   
var blank = ”   “;   
function getSubject()   
{   
var xmlDoc;   
 
if(window.ActiveXObject)   
{   
//获得操作的xml文件的对象   
xmlDoc = new ActiveXObject(‘Microsoft.XMLDOM’);   
xmlDoc.async = false;   
xmlDoc.load(“tree.xml”);   
if(xmlDoc == null)   
{   
alert(‘您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!’);   
window.location.href=’/Index.aspx’;   
return;   
}   
}   
//解析xml文件,判断是否出错   
if(xmlDoc.parseError.errorCode != 0)   
{   
alert(xmlDoc.parseError.reason);   
return;   
}   
//获得根接点   
var nodes = xmlDoc.documentElement.childNodes;   
//得到根接点下共有子接点个数,并循环   
for(var i=0; i<nodes.length; i++)   
{   
//如果接点名为 tree   
if(nodes(i).nodeName == “tree”)   
{   
readTree(nodes(i));   
}   
//如果接点名为 node   
else if(nodes(i).nodeName == “node”)   
{   
readNode(nodes(i));   
}   
}   
//删除对象   
delete(xmlDoc);   
//显示HTML   
window.show.innerHTML = HTML;   
return;   
}   
//读Tree节点   
function readTree(cI)   
{   
var nodes = cI.childNodes;   
var menuHTML = space;   
menuHTML += blank;   
//得到超级链接   
menuHTML += “<a href='”;   
//如果该节点的连接属性不为空,则连接   
if(cI.selectNodes(“link”)(0).text != “”)   
{   
menuHTML += cI.selectNodes(“link”)(0).text;   
}   
//否则为空链接   
else   
{   
menuHTML += “#”;   
}   
//目标   
if(cI.selectNodes(“target”)(0).text != “”)   
{   
menuHTML += ” target='”+cI.selectNodes(“target”)(0).text;   
menuHTML += “‘”;   
}   
//点击菜单事件,调用divshow(vid)函数   
menuHTML += ” onclick=javascript:divshow(‘”+cI.getAttribute(“id”)+”‘);”;   
//得到节点标题   
menuHTML += ” title='”;   
menuHTML += cI.selectNodes(“title”)(0).text;   
//结束   
menuHTML += “‘>”;   
//得到节点的正文   
menuHTML += cI.selectNodes(“text”)(0).text;   
menuHTML += “</a><br>\n”;   
//将menuHTML设置添加到HTML字符串   
HTML += menuHTML;   
//得到该节点的属性值<span   
HTML += “<div id='”+cI.getAttribute(“id”)+”‘ style=’display:none’>\n”;   
for(var i=0; i<nodes.length; i++)   
{   
var tempImg = “”;   
tempImg += blank;   
if(nodes(i).nodeName == “tree”)   
{   
space += tempImg;   
readTree(nodes(i));   
space = “”;   
}   
else if(nodes(i).nodeName == “node”)   
{   
space += tempImg;   
readNode(nodes(i));   
}   
}   
HTML += “</div>\n”;   
return;   
}   
//读Node节点   
function readNode(cI)   
{   
var nodeHTML = space;   
nodeHTML += blank;   
//设置超级链接   
nodeHTML += “<a href='”;   
//得到连接地址   
nodeHTML += cI.selectNodes(“link”)(0).text;   
//目标   
if(cI.selectNodes(“target”)(0).text != “”)   
nodeHTML += “‘ target='”+cI.selectNodes(“target”)(0).text;   
//得到节点标题   
nodeHTML += “‘ title='”;   
nodeHTML += cI.selectNodes(“title”)(0).text;   
//结束   
nodeHTML += “‘>”;   
//得到节点的正文   
nodeHTML += cI.selectNodes(“text”)(0).text;   
nodeHTML += “</a><br>\n”;   
HTML += nodeHTML;   
//HTML += “<div id='”+cI.getAttribute(“id”)+”‘>”;   
space = “”;   
return;   
}   
//操作对象的显示还是隐藏效果   
function divshow(vid)   
{   
if(document.all[vid].style.display == “none”)   
{   
document.all[vid].style.display = “block”;   
}   
else   
{   
document.all[vid].style.display = “none”;   
}   
return;   
}   
</script>  
  
 

Html代码

<html>   
<head>   
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>   
<title>JS_XML</title>   
 
<style type=”text/css”>   
<!–   
body   
{   
margin-left: 0px;   
margin-top: 0px;   
margin-right: 0px;   
margin-bottom: 0px;   
font-size: 9pt;   
}   
A   
{   
text-decoration:none;   
font-family: “宋体”;   
font-size: 9pt;   
COLOR:#000000;   
}   
–>   
</style>   
 
</head>   
<body bgcolor=”#EEEEEE” leftmargin=”0″ topmargin=”0″>   
<div id=show></div>   
</body>   
<script>   
getSubject()   
</script>   
</html>  

正则表达式格式验证

<?xml version=”1.0″ encoding=”UTF-8″?>
<regex>
<item>
  <id>R1</id>
  <value>/^((\\(\\d{3}\\))|(\\d{3}\\-))?(\\(0\\d{2,3}\\)|0\\d{2,3}-)?[1-9]\\d{6,7}$/</value >
  <text>电话号码</text>
</item>

<item>
  <id>R2</id>
  <value>/^((\\(\\d{3}\\))|(\\d{3}\\-))?1\\d{10}$/</value >
  <text>手机号码</text>
</item>

<item>
  <id>R3</id>
  <value>/^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/</value>
  <text>日期</text>
</item>

<item>
  <id>R4</id>
  <value>/^\\d{15}(\\d{2}[A-Za-z0-9])?$/</value >
  <text>身份证</text>
</item>

<item>
  <id>R5</id>
  <value>/^\\d+(\\.\\d+)?$/</value >
  <text>货币</text>
</item>

<item>
  <id>R6</id>
  <value>/^[1-9]\\d{5}$/</value>
  <text>邮政编码</text>
</item>

<item>
  <id>R7</id>
  <value>/^[1-9]\\d{4,8}$/</value>
  <text>QQ号码</text>
</item>

<item>
  <id>R8</id>
  <value>/^[\\u0391-\\uFFE5]+$/</value>
  <text>中文</text>
</item>

<item>
  <id>R9</id>
  <value>/^(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2}).(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2}).(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2}).(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2})$/</value>
  <text>IP地址</text>
</item>

<item>
  <id>R10</id>
  <value>/^[\\w|\\d]+@(\\w+\\.)+[a-z]{2,3}$/</value >
  <text>电子邮件地址</text>
</item>

<item>
  <id>R11</id>
  <value>/^(https|http|ftp|rtsp|mms):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&amp;:\\/~\\+#]*[\\w\\-\\@?^=%&amp;\\/~\\+#])?$/</value >
  <text>URL地址</text>
</item>

<item>
  <id>R12</id>
  <value>/^(-[1-9]|[1-9]|(0[.])|(-(0[.])))[0-9]{0,}(([.]*\\d{1,2})|[0-9]{0,})$/</value>
  <text>保留两位小数的数字</text>
</item>

<item>
  <id>R13</id>
  <value>/^\\d+$/</value>
  <text>数字</text>
</item>

<item>
  <id>R14</id>
  <value>/^(-?\\d+)(\\.\\d+)?$/</value >
  <text>浮点数</text>
</item>

<item>
  <id>R15</id>
  <value>/^[-\\+]?\\d+$/</value>
  <text>整数</text>
</item>

<item>
  <id>R16</id>
  <value>/^[0-9]*[1-9][0-9]*$/</value>
  <text>正整数</text>
</item>

<item>
  <id>R17</id>
  <value>/^-[0-9]*[1-9][0-9]*$/</value>
  <text>负整数</text>
</item>

<item>
  <id>R18</id>
  <value>/^\\d+$/</value>
  <text>正整数包括零</text>
</item>

<item>
  <id>R19</id>
  <value>/^0|-[0-9]*[1-9][0-9]*$/</value>
  <text>负整数包括零</text>
</item>

<item>
  <id>R20</id>
  <value>/^[A-Za-z0-9]+$/</value>
  <text>由数字和英文字母组成的字符串</text>
</item>

<item>
  <id>R21</id>
  <value>/^[A-Z0-9]{5,25}$/</value>
  <text>由5-25位的数字或大写字母组成</text>
</item>

<item>
  <id>R22</id>
  <value>/^[A-Za-z]+$/</value>
  <text>由英文字母组成的字符串</text>
</item>

<item>
  <id>R23</id>
  <value>/^[A-Z]+$/</value>
  <text>由大写英文字母组成的字符串</text>
</item>

<item>
  <id>R24</id>
  <value>/^\\w+$/</value>
  <text>由数字、英文字母或者下划线组成的字符串</text>
</item>

<item>
  <id>R25</id>
  <value>/^[^\\s]{1}[^-_\\~!@#\\$%\\^&amp;\\*\\.\\(\\)\\[\\]\\{\\}&lt;&gt;\\?\\\\/|;:+=`,\’\”]*$/</value >
  <text>无符号字符串</text>
</item>
</regex>
  

//范例
function _isvalidok(val)
        {
        var temp = false;
        if(val.indexOf(‘-‘) != -1)
        {
        var _position = val.indexOf(‘-‘);
        var _length = val.length;
        var first = val.substring(0, _position);
        var second = val.substring(_position+1, _length);
        var patrn=/^[0-9]{1,20}$/; 
        var regex_AB = /^[A-Z]+$/;
        var regex_ab = /^[a-z]+$/;
    if (patrn.exec(first) && patrn.exec(second))
    temp = true;
    else if(regex_AB.exec(first) && regex_AB.exec(second) && first.length == 1 && second.length == 1)
    temp = true;
    else if(regex_ab.exec(first) && regex_ab.exec(second) && first.length == 1 && second.length == 1)
    temp = true;
    else
    temp = false;
        }else
        {
        var regex_Aa = /^[A-Za-z]+$/;
        var regex_1 =  /^[0-9]*$/;
        if(regex_Aa.exec(val) || regex_1.exec(val))
        {
        temp = true;
        }else
        {
        temp = false;
        }
        }
        return temp;
        }
 

js常用方法

代码:
function strlen(str)   
{   
    var i;   
    var len;   
       
    len = 0;   
    for (i=0;i<>
    {   
        if (str.charCodeAt(i)>255) len+=2; else len++;   
    }   
    return len;   
}  
 

/*
* 判断是否为数字,是则返回true,否则返回false
*/

代码
function f_check_number(obj)   
{          
    if (/^\d+$/.test(obj.value))   
    {   
       return true;   
    }    
    else    
    {   
       f_alert(obj,”请输入数字”);   
       return false;   
    }   
}   
 

/*
* 判断是否为自然数,是则返回true,否则返回false
*/

代码
function f_check_naturalnumber(obj)   
{          
    var s = obj.value;   
    if (/^[0-9]+$/.test( s ) && (s > 0))   
    {   
       return true;   
    }    
    else    
    {   
        f_alert(obj,”请输入自然数”);   
        return false;   
    }   
}   
 

/*
* 判断是否为整数,是则返回true,否则返回false
*/

代码
function f_check_integer(obj)   
{          
    if (/^(\+|-)?\d+$/.test( obj.value ))    
    {   
       return true;   
    }    
    else    
    {   
        f_alert(obj,”请输入整数”);   
        return false;   
    }   
}   
 

/*
* 判断是否为实数,是则返回true,否则返回false
*/

代码
function f_check_float(obj)   
{          
    if (/^(\+|-)?\d+($|\.\d+$)/.test( obj.value ))    
    {   
       return true;   
    }    
    else    
    {   
        f_alert(obj,”请输入实数”);   
       return false;   
    }   
}   
  
/*
用途:检查输入字符串是否只由汉字组成
如果通过验证返回true,否则返回false
*/

代码
function f_check_zh(obj){   
    if (/^[\u4e00-\u9fa5]+$/.test(obj.value)) {   
      return true;   
    }   
    f_alert(obj,”请输入汉字”);   
    return false;   
}   
 

/*
* 判断是否为小写英文字母,是则返回true,否则返回false
*/

代码
function f_check_lowercase(obj)   
{          
    if (/^[a-z]+$/.test( obj.value ))    
    {   
       return true;   
    }    
    f_alert(obj,”请输入小写英文字母”);   
    return false;   
}   
 

/*
* 判断是否为大写英文字母,是则返回true,否则返回false
*/

代码
function f_check_uppercase(obj)   
{          
    if (/^[A-Z]+$/.test( obj.value ))    
    {   
       return true;   
    }    
    f_alert(obj,”请输入大写英文字母”);   
    return false;   
}   
 

/*
* 判断是否为英文字母,是则返回true,否则返回false
*/

代码
function f_check_letter(obj)   
{          
    if (/^[A-Za-z]+$/.test( obj.value ))    
    {   
       return true;   
    }    
    f_alert(obj,”请输入英文字母”);   
    return false;   
}   
 

/*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false
*/

代码
function f_check_ZhOrNumOrLett(obj){    //判断是否是汉字、字母、数字组成   
    var regu = “^[0-9a-zA-Z\u4e00-\u9fa5]+$”;      
    var re = new RegExp(regu);   
    if (re.test( obj.value )) {   
      return true;   
    }   
    f_alert(obj,”请输入汉字、字母或数字”);   
    return false;   
}   
 

/*
用途:校验ip地址的格式
输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
*/

代码
function f_check_IP(obj)    
{    
    var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; //匹配IP地址的正则表达式   
    if(re.test( obj.value ))   
    {   
        if( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;   
    }   
    f_alert(obj,”请输入合法的计算机IP地址”);   
    return false;    
}   
 

/*
用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/

代码
function f_check_port(obj)   
{   
    if(!f_check_number(obj))   
        return false;   
    if(obj.value < 65536)   
        return true;   
    f_alert(obj,”请输入合法的计算机IP地址端口号”);   
    return false;    
}   
 

/*
用途:检查输入对象的值是否符合网址格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/

代码
function f_check_URL(obj){     
    var myReg = /^((http:[/][/])?\w+([.]\w+|[/]\w*)*)?$/;    
    if(myReg.test( obj.value )) return true;    
    f_alert(obj,”请输入合法的网页地址”);   
    return false;    
}   
 

/*
用途:检查输入对象的值是否符合E-Mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/

代码
function f_check_email(obj){     
    var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;    
    if(myReg.test( obj.value )) return true;    
    f_alert(obj,”请输入合法的电子邮件地址”);   
    return false;    
}   
 

/*
要求:一、移动电话号码为11或12位,如果为12位,那么第一位为0
二、11位移动电话号码的第一位和第二位为”13″
三、12位移动电话号码的第二位和第三位为”13″
用途:检查输入手机号码是否正确
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/

代码
function f_check_mobile(obj){      
    var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;   
    var re = new RegExp(regu);   
    if (re.test( obj.value )) {   
      return true;   
    }   
    f_alert(obj,”请输入正确的手机号码”);   
    return false;      
}   
 

/*
要求:一、电话号码由数字、”(“、”)”和”-“构成
二、电话号码为3到8位
三、如果电话号码中包含有区号,那么区号为三位或四位
四、区号用”(“、”)”或”-“和其他部分隔开
用途:检查输入的电话号码格式是否正确
输入:
strPhone:字符串
返回:
如果通过验证返回true,否则返回false
*/

代码
function f_check_phone(obj)    
{   
    var regu =/(^([0][1-9]{2,3}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0][1-9]{2,3}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/;    
    var re = new RegExp(regu);   
    if (re.test( obj.value )) {   
      return true;   
    }   
    f_alert(obj,”请输入正确的电话号码”);   
    return false;   
}   
 

/* 判断是否为邮政编码 */

代码
function f_check_zipcode(obj)   
{   
    if(!f_check_number(obj))   
        return false;   
    if(obj.value.length!=6)   
    {   
        f_alert(obj,”邮政编码长度必须是6位”);   
        return false;   
    }   
    return true;   
}   
 

/*
用户ID,可以为数字、字母、下划线的组合,
第一个字符不能为数字,且总长度不能超过20。
*/

代码
function f_check_userID(obj)   
{   
    var userID = obj.value;   
    if(userID.length > 20)   
    {   
        f_alert(obj,”ID长度不能大于20″);   
        return false;   
    }   
  
    if(!isNaN(userID.charAt(0)))   
    {   
        f_alert(obj,”ID第一个字符不能为数字”);   
        return false;   
    }   
    if(!/^\w{1,20}$/.test(userID))    
    {   
        f_alert(obj,”ID只能由数字、字母、下划线组合而成”);   
        return false;   
    }   
    return true;   
}   
 

/*
功能:验证身份证号码是否有效
提示信息:未输入或输入身份证号不正确!
使用:f_check_IDno(obj)
返回:bool
*/

代码
function f_check_IDno(obj)   
{    
    var aCity={11:”北京”,12:”天津”,13:”河北”,14:”山西”,15:”内蒙古”,21:”辽宁”,22:”吉林”,23:”黑龙江”,31:”上海”,32:”江苏”,33:”浙江”,34:”安徽”,35:”福建”,36:”江西”,37:”山东”,41:”河南”,42:”湖北”,43:”湖南”,44:”广东”,45:”广西”,46:”海南”,50:”重庆”,51:”四川”,52:”贵州”,53:”云南”,54:”西藏”,61:”陕西”,62:”甘肃”,63:”青海”,64:”宁夏”,65:”新疆”,71:”台湾”,81:”香港”,82:”澳门”,91:”国外”};   
    
    var iSum = 0;   
    var info = “”;   
    var strIDno = obj.value;   
    var idCardLength = strIDno.length;     
    if(!/^\d{17}(\d|x)$/i.test(strIDno)&&!/^\d{15}$/i.test(strIDno))    
    {   
        f_alert(obj,”非法身份证号”);   
        return false;   
    }   
    
    //在后面的运算中x相当于数字10,所以转换成a   
    strIDno = strIDno.replace(/x$/i,”a”);   
  
    if(aCity[parseInt(strIDno.substr(0,2))]==null)   
    {   
        f_alert(obj,”非法地区”);   
        return false;   
    }   
       
    if (idCardLength==18)   
    {   
        sBirthday=strIDno.substr(6,4)+”-“+Number(strIDno.substr(10,2))+”-“+Number(strIDno.substr(12,2));   
        var d = new Date(sBirthday.replace(/-/g,”/”))   
        if(sBirthday!=(d.getFullYear()+”-“+ (d.getMonth()+1) + “-” + d.getDate()))   
        {          
            f_alert(obj,”非法生日”);   
            return false;   
        }   
  
        for(var i = 17;i>=0;i –)   
            iSum += (Math.pow(2,i) % 11) * parseInt(strIDno.charAt(17 – i),11);   
  
        if(iSum%11!=1)   
        {   
            f_alert(obj,”非法身份证号”);   
            return false;   
        }   
    }   
    else if (idCardLength==15)   
    {   
        sBirthday = “19” + strIDno.substr(6,2) + “-” + Number(strIDno.substr(8,2)) + “-” + Number(strIDno.substr(10,2));   
        var d = new Date(sBirthday.replace(/-/g,”/”))   
        var dd = d.getFullYear().toString() + “-” + (d.getMonth()+1) + “-” + d.getDate();      
        if(sBirthday != dd)   
        {   
            f_alert(obj,”非法生日”);   
            return false;   
        }   
    }   
    return true;    
}   
  
/*
功能:判断是否为日期(格式:yyyy年MM月dd日,yyyy-MM-dd,yyyy/MM/dd,yyyyMMdd)
提示信息:未输入或输入的日期格式错误!
使用:f_check_date(obj)
返回:bool
*/

代码
function f_check_date(obj)   
{   
    var date = Trim(obj.value);   
    var dtype = obj.eos_datatype;   
    var format = dtype.substring(dtype.indexOf(“(“)+1,dtype.indexOf(“)”)); //日期格式   
    var year,month,day,datePat,matchArray;   
  
    if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format))   
        datePat = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/;   
    else if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(format))   
        datePat = /^(\d{4})年(\d{1,2})月(\d{1,2})日$/;   
    else if(format==”yyyyMMdd”)   
        datePat = /^(\d{4})(\d{2})(\d{2})$/;   
    else  
    {   
        f_alert(obj,”日期格式不对”);   
        return false;   
    }   
    matchArray = date.match(datePat);   
    if(matchArray == null)    
    {   
        f_alert(obj,”日期长度不对,或日期中有非数字符号”);   
        return false;   
    }   
    if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format))   
    {   
        year = matchArray[1];   
        month = matchArray[3];   
        day = matchArray[4];   
    } else  
    {   
        year = matchArray[1];   
        month = matchArray[2];   
        day = matchArray[3];   
    }   
    if (month < 1 || month > 12)   
    {                
        f_alert(obj,”月份应该为1到12的整数”);   
        return false;   
    }   
    if (day < 1 || day > 31)   
    {   
        f_alert(obj,”每个月的天数应该为1到31的整数”);   
        return false;   
    }        
    if ((month==4 || month==6 || month==9 || month==11) && day==31)   
    {   
        f_alert(obj,”该月不存在31号”);   
        return false;   
    }        
    if (month==2)   
    {   
        var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));   
        if (day>29)   
        {                  
            f_alert(obj,”2月最多有29天”);   
            return false;   
        }   
        if ((day==29) && (!isleap))   
        {                  
            f_alert(obj,”闰年2月才有29天”);   
            return false;   
        }   
    }   
    return true;   
}   
 

/*
功能:校验的格式为yyyy年MM月dd日HH时mm分ss秒,yyyy-MM-dd HH:mm:ss,yyyy/MM/dd HH:mm:ss,yyyyMMddHHmmss
提示信息:未输入或输入的时间格式错误
使用:f_check_time(obj)
返回:bool
*/

代码
function f_check_time(obj)   
{   
    var time = Trim(obj.value);   
    var dtype = obj.eos_datatype;   
    var format = dtype.substring(dtype.indexOf(“(“)+1,dtype.indexOf(“)”)); //日期格式   
    var datePat,matchArray,year,month,day,hour,minute,second;   
  
    if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2}) (HH:mm:ss)$/.test(format))   
        datePat = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;   
    else if(/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)(HH时mm分ss秒)$/.test(format))   
        datePat = /^(\d{4})年(\d{1,2})月(\d{1,2})日(\d{1,2})时(\d{1,2})分(\d{1,2})秒$/;   
    else if(format == “yyyyMMddHHmmss”)   
        datePat = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/;   
    else  
    {   
        f_alert(obj,”日期格式不对”);   
        return false;   
    }   
    matchArray = time.match(datePat);   
    if(matchArray == null)    
    {   
        f_alert(obj,”日期长度不对,或日期中有非数字符号”);   
        return false;   
    }   
    if(/^(y{4})(-|\/)(M{1,2})\2(d{1,2}) (HH:mm:ss)$/.test(format))   
    {   
        year = matchArray[1];   
        month = matchArray[3];   
        day = matchArray[4];   
        hour = matchArray[5];   
        minute = matchArray[6];   
        second = matchArray[7];   
    } else  
    {   
        year = matchArray[1];   
        month = matchArray[2];   
        day = matchArray[3];   
        hour = matchArray[4];   
        minute = matchArray[5];   
        second = matchArray[6];   
    }   
    if (month < 1 || month > 12)   
    {                
        f_alert(obj,”月份应该为1到12的整数”);   
        return false;   
    }   
    if (day < 1 || day > 31)   
    {              
        f_alert(obj,”每个月的天数应该为1到31的整数”);   
        return false;   
    }        
    if ((month==4 || month==6 || month==9 || month==11) && day==31)   
    {            
        f_alert(obj,”该月不存在31号”);   
        return false;   
    }        
    if (month==2)   
    {   
        var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));   
        if (day>29)   
        {                  
            f_alert(obj,”2月最多有29天”);   
            return false;   
        }   
        if ((day==29) && (!isleap))   
        {                  
            f_alert(obj,”闰年2月才有29天”);   
            return false;   
        }   
    }   
    if(hour<0 || hour>23)   
    {   
        f_alert(obj,”小时应该是0到23的整数”);   
        return false;   
    }   
    if(minute<0 || minute>59)   
    {   
        f_alert(obj,”分应该是0到59的整数”);   
        return false;   
    }   
    if(second<0 || second>59)   
    {   
        f_alert(obj,”秒应该是0到59的整数”);   
        return false;   
    }   
    return true;   
}   
 

/*判断当前对象是否可见*/

代码
function isVisible(obj){   
    var visAtt,disAtt;   
    try{   
        disAtt=obj.style.display;   
        visAtt=obj.style.visibility;   
    }catch(e){}   
    if(disAtt==”none” || visAtt==”hidden”)   
        return false;   
    return true;   
}   
 

/*判断当前对象及其父对象是否可见*/

代码
function checkPrVis(obj){   
    var pr=obj.parentNode;   
    do{   
        if(pr == undefined || pr == “undefined”) return true;   
        else{   
            if(!isVisible(pr)) return false;   
        }   
    }while(pr=pr.parentNode);   
    return true;   
}   
 

/* 弹出警告对话框,用户点确定后将光标置于出错文本框上, 并且将原来输入内容选中。*/

代码
function f_alert(obj,alertInfo)   
{   
    var caption = obj.getAttribute(“eos_displayname”);   
    if(caption == null)   
        caption = “”;   
    alert(caption + “:” + alertInfo + “!”);    
    obj.select();   
    if(isVisible(obj) && checkPrVis(obj))   
        obj.focus();   
}   
 

/**
* 检测字符串是否为空
*/

代码
function isNullOrEmpty(str)   
{   
    str = Trim(str);   
    if(str.length == 0) {  
        return true;   
    }
    else {
        return false
    }

//去左空格
function LTrim(str){
return str.replace(/^\s*/g,””);
}
//去右空格
function RTrim(str){
return str.replace(/\s*$/g,””);
}

//去首尾空格
function Trim(str){
return str.replace(/^\s*|\s*$/g,””);
}

//get parameter value from ‘get’ url, strurl: window.parent.location.href or window.location.href, para: keyName
function getPara(para, strurl){
if (strurl.indexOf(“?”) == -1) {
   //Do nothing.
   return null;
}
else {
   //get the string after ‘?’
   var urlQuery = strurl.split(“?”);
   if(urlQuery[1].indexOf(“&”)==-1){//only one parameter
    if (urlQuery[1].indexOf(“=”) == -1) {
     //no parameter value
     //Do nothing
     return null;
    }
    else{
     var keyValue = urlQuery[1].split(“=”);
     var key = keyValue[0];
     var value = keyValue[1];
     if(key==para){
      return value;
     }
    }
   }
   else{
    // analyse parameters
    var urlTerms = urlQuery[1].split(“&”);
    for (var i = 0; i < urlTerms.length; i++){
     var keyValue = urlTerms[i].split(“=”);
     var key = keyValue[0];
     var value = keyValue[1];
     if(key==para){
      return value;
     }
    }
   }
}
return null;
}

// 功能: 1)去除字符串前后所有空格
// 2)去除字符串中所有空格(包括中间空格,需要设置第2个参数为:g)
function Trim(str,is_global)
{
var result;
result = str.replace(/(^\s+)|(\s+$)/g,””);
if(is_global.toLowerCase()==”g”)
result = result.replace(/\s/g,””);
return result;
}

遍历json

<script language=”javascript”>  
 function e()  
 {  
    var json=[{“kl_id”:”2″,”kl_title”:”Test date”,”kl_content”:”Test date”,”kl_type”:”1″,”id”:”1″},{“kl_id”:”2″,”kl_title”:”Test”,”kl_content”:”Test”,”kl_type”:”1″,”id”:”2″}]  
    var str = “”;  
    for (var one in json)  
    {  
        for(var key in json[one])  
        {  
            str += json[one][key]+ “,”;  
        }  
    }  
    document.form.txtName.value = str;  
 }  
 </script> 

javascript:void(0)

JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

void 操作符用法格式如下:

1. javascript:void (expression)
2. javascript:void expression

expression 是一个要计算的 JavaScript 标准的表达式。表达式外侧的圆括号是可选的,但是写上去是一个好习惯。 (实现版本   Navigator 3.0   )

你可以使用 void 操作符指定超级链接。表达式会被计算但是不会在当前文档处装入任何内容。
下面的代码创建了一个超级链接,当用户点击以后不会发生任何事。当用户点击链接时,void(0) 计算为 0,但在 JavaScript 上没有任何效果。

<A HREF=”javascript:void(0)”>单击此处什么也不会发生</A>

下面的代码创建了一个超级链接,用户单击时会提交表单。

<A HREF=”javascript:void(document.form.submit())”>单击此处提交表单</A>

那什么情况下用void(0)比较多呢,无刷新,当然是Ajax了,看一下Ajax的web页面的话,一般都会看到有很多的void(0),所以在使用void(0)之前,最好先想一想这个页面是否需要整体刷新。

—————————————————————————-

使用javascript的时候,通常我们会通过类似:<a href=”#” onclick=”javascript:方法”>提交</a> 的方式,通过一个伪链接来调用javascript方法。这种方法有一个问题是:虽然点击该链接的时候不会跳转页面,但是滚动条会往上滚,解决的办法是返 回一个false。
如下所示:

<a href=”#” onclick=”javascript:方法;return false;”>提交</a><a href=”javascript:void(0)” onclick=”javascript:方法;return false;”>提交</a>

还有一个方法是 #this

a href=”#this” onclick=”javascript:方法”

—————————————————————————-
#包含了一个位置信息

默认的锚点是#top 也就是网页的上端

而javascript:void(0)   仅仅表示一个死链接

这就是为什么有的时候页面很长浏览链接明明是#可是跳动到了页首

而javascript:void(0) 则不是如此

所以调用脚本的时候最好用void(0) 或者<input onclick> <div onclick>等

打开新窗口链接的几种办法

 

1.window.open(‘url’)

2.用自定义函数

        <script>
        function openWin(tag,obj)
        {
             obj.target=”_blank”;
             obj.href = “Web/Substation/Substation.aspx?stationno=”+tag;
             obj.click();
         }
        </script>

<a href=”javascript:void(0)” onclick=”openWin(3,this)”>株洲</a>
3.window.location.href=””

 

总结:1)链接(href)直接使用javascript:void(0)在IE中可能会引起一些问题,比如:造成gif动画停止播放 等,所以,最安全的办法还是使用“#”。为防止点击链接后跳转到页首,onclick事件return false即可。2)在使用void(0)之前,最好先想一想,这个页面是否需要整体刷新,不需要整体刷新时可以用void(0)。