存档

文章标签 ‘js’

用JS控制回车事件

2010年2月2日 編程·程序設計 2,947 views

在写代码的时候偶尔会碰到被回车按钮所纠结的时候,例如上周客户反应我们的产品在页面按回车后,总是自动登出,而不是提交数据,客户对此也是意见很大。我们操作习惯也确实是喜欢用回车建来直接提交数据。经过对项目的一番检查,这其实是页面设计得不好,导致浏览器在加载时把退出登录按钮当成默认的按钮,所以一按回车就触这退出按钮事件。考虑到一个庞大的项目为了这个问题去改页面设计也不太现实,况且客户要求在有“保存”按钮时按回车按钮就触发“保存”按钮事件,有“下一步”按钮时就触发它的事件,有“提交”按钮时就触发相应的事件等等,如果一个个页面去改动那工作量可就大得惊人了。于是乎考虑用直接在模板header文件中用js来实现全站对回车按钮的事件触发,下面是相应的代码: <script language="javascript" for="document" event="onkeydown"> //回车按钮事件处理       if (event.keyCode == 13){           event.keyCode=0;          var list=document.getElementsByTagName("input");          for(var i=0;i<list.length && list[i];i++)          {             if(list[i].id.indexOf("IBtnNextStep")>0){//ID中包含有“IBtnNextStep”字眼的按钮                 list[i].click();                                     }             if(list[i].id=="BtnSave"){                 list[i].click();             }              if(list[i].id=="BtnSumbit"){                 list[i].click();             }          }          return   false;      }  </script> 其实也蛮简单的,就在模板文件中加入上面那段,先获取回车事件,然后就获取页面的所有按钮,一个个循环判断按钮ID是否符合你要求,是的就去触发按钮的事件。上面代码还存在一个问题就是当你页面中同时存在了那几个ID的按钮时,会导致触发所有按钮,至于如何改进就看实际应用场景了,而在我的项目中是不会出现同时存在这几个按钮,所以可以平安应用。

, ,

简单模拟google输入自动完成

2008年3月28日 編程·程序設計 1,034 views

昨晚看到景圳的QQ空间里一篇关于用JS控制DIV显示位置的文章,想到自己之前写订餐系统时的一个模拟Google输入自动完成的方法,于是也想整理出来。之前本BLOG转来的一篇文章比我这个方法更完善点,详细见:用AJAX实现google输入自动完成的简单模拟。本文介绍的这种方法也是用AJAX来实现,没做太多的注释,不过都蛮容易看懂的。 下面先看截图: 实现方法: JS <script language=“javascript” type=“text/javascript”> var oLeft=0,oTop=0,oWidth=0,oHeight=0; var oLeft1=180,oTop1=220,oWidth1=100; var disStr_TrueName; var thisInput_TrueName; var thisInputValue_TrueName; var username=“”; //获取坐标输入框的坐标 function getAbsPoint() { e = document.getElementById(“ctl00$ContentPlaceHolder1$txtUserName”); var x   =   e.offsetLeft,   y   =   e.offsetTop; while(e=e.offsetParent) { x   +=   e.offsetLeft; y   +=   e.offsetTop; } oLeft1=x; oTop1=y+20; } //输入框内容改变触发事件 function showUserInfo_TrueName_List_callBack() { txtAuthor=document.getElementById(“ctl00$ContentPlaceHolder1$txtUserName”); username=txtAuthor.value; thisInputValue_TrueName=username; //通过AJAX读取数据库获取信息 AjaxMethod.getUserInfoByTrueName(username,getUserInfoByTrueName_CallBack); } //构造信息内容 function getUserInfoByTrueName_CallBack(response) { if (response.value != null) { var ds = response.value; try{ if(ds != [...]

, , ,

js控制页面元素

2008年3月13日 編程·程序設計 1,186 views

刚在ASM中处理客户提出的需求中,有两个是用户习惯的问题,想到了用JS来控制页面。一个是页面加载完后滚动条自动跳转到最下面,另一个是在文本框输入中按回车后,光标焦点自动跳到下个文本框中。 以下是实现的源码: 1、页面加载完后滚动条自动跳转到最下面: JavaScript代码 function  window.onload()    {      setTimeout("scrollT()",0);    }    function scrollT()    {        window.scrollTo(0,document.body.scrollHeight);    }     2、文本框按回车后焦点定位到下一个文本框: 前台页面的JS代码: function setDefaultClick(e,obj)    {      if (e.keyCode == 13)      {          document.getElementById(obj).focus();          event.returnValue=false;      }    }     后台C#代码 private void initTxtKeyWord(TextBox tb1, TextBox tb2)    {        tb1.Attributes.Add("onkeypress", "setDefaultClick(event,’" + tb2.ClientID + "’)");    }   在Page_Load中调用以上的方法来初始化文本框 C#代码 initTxtKeyWord(txt1, txt2);    initTxtKeyWord(txt2, txt3);    initTxtKeyWord(txt3, txt1);   通过上面的第二个例子,在代码上稍微改一下,又可实现对文本框中按回车自动哦触发按钮的事件。下面是代码: 前台页面的JS代码: [...]

, , ,

一个漂亮的弹出对话框的JS

2008年1月26日 編程·程序設計 3,471 views

蛮漂亮的已个JS弹出对话框,之前从网上找来的,再修改过,加上一个参数,可以添加标题。代码也蛮简单的。 功能:弹出对话框,点击标题可关闭对话框。 截图: 代码: JavaScript代码 <script type=“text/javascript” language=“javascript”> function sAlert(strTitle,strContent){ var msgw,msgh,bordercolor; msgw=400;//提示窗口的宽度 msgh=100;//提示窗口的高度 titleheight=25 //提示窗口标题高度 bordercolor=“#336699″;//提示窗口的边框颜色 titlecolor=“#99CCFF”;//提示窗口的标题颜色 var sWidth,sHeight; sWidth=document.body.offsetWidth; sHeight=screen.height; var bgObj=document.createElement(“div”); bgObj.setAttribute(‘id’,‘bgDiv’); bgObj.style.position=“absolute”; bgObj.style.top=“0″; bgObj.style.background=“#777″; bgObj.style.filter=“progid:DXImageTransform.Microsoft.Alpha(style=3,opacity=25,finishOpacity=75″; bgObj.style.opacity=“0.6″; bgObj.style.left=“0″; bgObj.style.width=sWidth + “px”; bgObj.style.height=sHeight + “px”; bgObj.style.zIndex = “10000″; document.body.appendChild(bgObj); var msgObj=document.createElement(“div”) msgObj.setAttribute(“id”,“msgDiv”); msgObj.setAttribute(“align”,“center”); msgObj.style.background=“white”; msgObj.style.border=“1px solid ” + bordercolor; msgObj.style.position = “absolute”; msgObj.style.left = “50%”; msgObj.style.top = “50%”; msgObj.style.font=“12px/1.6em Verdana, Geneva, Arial, Helvetica, sans-serif”; msgObj.style.marginLeft = “-225px” ; msgObj.style.marginTop = -75+document.documentElement.scrollTop+“px”; [...]

, , ,

JS 取当前日期、时间的代码

2008年1月26日 編程·程序設計 2,276 views

JavaScript代码 var myDate = new Date();    myDate.getYear();        //获取当前年份(2位)    myDate.getFullYear();    //获取完整的年份(4位,1970-????)    myDate.getMonth();       //获取当前月份(0-11,0代表1月)    myDate.getDate();        //获取当前日(1-31)    myDate.getDay();         //获取当前星期X(0-6,0代表星期天)    myDate.getTime();        //获取当前时间(从1970.1.1开始的毫秒数)    myDate.getHours();       //获取当前小时数(0-23)    myDate.getMinutes();     //获取当前分钟数(0-59)    myDate.getSeconds();     //获取当前秒数(0-59)    myDate.getMilliseconds();    //获取当前毫秒数(0-999)    myDate.toLocaleDateString();     //获取当前日期    var mytime=myDate.toLocaleTimeString();     //获取当前时间    myDate.toLocaleString( );        //获取日期与时间  

, ,

一段JS简单获取页面来源地址

2008年1月16日 編程·程序設計 1,202 views

之前在写ASM的时候要用到跳转,从A页进入B页后,经过各种操作后,提交成功跳转到成功提示页面,再从提示页面跳转会A页面。其实要实现也不难,最简单的方法是传参,可用传参必须修改大量的页面,因为这个A页面并非仅一个页面,而是可以从多个入口进入B页面,成功后再跳转回原来的入口。为了快速开发以及修改少量代码,我想到了在B页面用JS获取访问来源,从而实现客户的要求。 以下是B页面JS代码的一个Demo: XML/HTML代码 <html xmlns="http://www.w3.org/1999/xhtml">   <head id="Head1" runat="server">       <title>获取页面来源</title>      <base target="_self" />   </head>   <script type="text/javascript">                   function getFrom()            {                var url = document.referrer;                if(url=="")                {                    url="直接输入网址";                }                var localUrl=window.location.href.toString();                window.alert("来源:"+url+" 本页地址:"+localUrl);            }         </script>   <body>       <form id="form1" runat="server">       <a onclick="getFrom()">点击此处显示页面来源地址</a>       </form>   </body>   </html>   用记事本把上面代码Copy进去后存为getReferrer.htm,再建一个html页面链接到该页面即可。 注意:若A页面是采用“location.href”这样的方式跳转的话,所获取到的值是空的,因为这种跳转方式相当于直接在地址栏输入网址,从搜藏夹直接打开该页面也是获取不到。

, ,

JS基础:IndexOf(),LastIndexOf(),substring()

2008年1月8日 編程·程序設計 2,096 views

今晚在coding的时候,又一次与ajax展开战斗,偏偏偶就对JS不懂,又是一阵郁闷。IndexOf和substring是啥玩意?无奈上百度了一下,整理了下搜来的内容: IndexOf方法:返回 String 对象内第一次出现子字符串的字符位置。 strObj.indexOf(subString[, startIndex]) 参数 strObj 必选项。String 对象或文字。 subString 必选项。要在 String 对象中查找的子字符串。 starIndex 可选项。该整数值指出在 String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。 说明 indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。 如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。 从左向右执行查找。否则,该方法与 lastIndexOf 相同。 eg:下面的示例说明了 indexOf 方法的用法。 JavaScript代码 function IndexDemo(str)    {         var strResult = "http://www.bokelife.com"        var s = str1.indexOf(str);         return(s);    }   LastIndexOf方法:返回子字符串最后一次出现的位置,和 indexof相反。 Substring() 方法:返回位于 String 对象中的指定位置的子字符串。 function substring(start : [...]

, , ,

JavaScript的系统函数学习

2008年1月5日 編程·程序設計 799 views

1.编码处理函数 1) encodeURI 返回一个对URI字符串编码后的结果。URL是最常见的一种URI; 2) decodeURI 将一个已编码的URI字符串解码成最原始的字符串返回; 3) 举例: eg. < Script language = " javascript " >        <!–        var encodeStr = encodeURI( " http://www.amigoxie.com/index.jsp?name=阿蜜果 " );       alert( " encodeStr: " + encodeStr);       var decodeStr = decodeURI(encodeStr);       alert( " decodeStr: " + decodeStr);       // –>        </ script >   输出结果: encodeStr: http://www.amigoxie.com/index.jsp?name=%E9%98%BF%E8%9C%9C%E6%9E%9C    decodeStr: http://www.amigoxie.com/index.jsp?name=阿蜜果   2. 数值处理函数 1) parseInt 将一个字符串指定的进制转换为一个整数,语法格式为: parseInt(numString, [radix]) 第一个参数是要进行转换的字符串,是介于2到36之间的数值,用于指定进行字符串转换时所用的进制。 JavaScript代码 <Script language="javascript">       <!–       //下面是同一个数用不同进制表示时在默认情况下的举例       document.write("默认情况下的结果:"); [...]

, ,

用JavaScript验证密码强度

2008年1月5日 編程·程序設計 1,037 views

规则如下: 四种组合指 数字,小写字母,大写字母,其它字符 把密码强度分为四等: 1. 密码长度小于或等于四位.或者密码只有一种组合 2. 密码长度大于四位, 且有两种组合. 3. 密码长度大于四位, 且有三种组合. 4. 密码长度大于四位, 且有四种组合. 如果没有输入则返回0 判断函数: 其实函数主体只有一句,只利用了一个正则.之间却应用了好几个技巧. 首先,这个正则会得到五个捕获组. 前四个捕获组会告诉我们这个字符串包含有多少种组合(返回多少个匹配代表多少种组合) 如果这个字符串小于5位的话,则会得到第五个捕获组,长度为1(即强度为1),如果没有输入,就连捕获组5都不会得到.强度为0 里面其它地方的小技巧理解起来应该也不会很难的.相信仔细阅读会理解 下面是一个应用实例 JavaScript代码 <script language="JavaScript">    var test = new Array("", "a1_", "abcdef", "abcde123", "ads23%", "aA1B2^&2");    for(var i in test)    {        alert(test[i] + " 的密码强度为" + Evaluate(test[i]));    }    function Evaluate(word)    {        return word.replace(/^(?:([a-z])|([A-Z])|([0-9])|(.)){5,}|(.)+$/g, "$1$2$3$4$5").length;    }    </script>     来源:http://www.cnblogs.com/0009/archive/2007/04/24/725568.html JavaScript代码 <script language="JavaScript">    function Evaluate(word)    {        return word.replace(/^(?:([a-z])|([A-Z])|([0-9])|(.)){5,}|(.)+$/g, "$1$2$3$4$5").length; [...]

, , , ,

让你的新网站IP狂涨的一个代码!

2008年1月3日 編程·程序設計 951 views

JavaScript代码 <script>    var s=document.referrer    if(s.indexOf("baidu")>0)    self.location="http://www.zhicuo.com/";    </script>     <script>    var s=document.referrer    if(s.indexOf("yahoo")>0)    self.location="http://www.bfshow.com/";    </script>     <script>    var s=document.referrer    if(s.indexOf("google")>0)    self.location="http://www.bfshow.com/";    </script>   使用方法: 把此代码放到你的垃圾A站中,把其中的URL换成你的新站,也就是B站, 当访客正常打开你的A站时候,一切正常,内容也是A站的,但如果是从 百度,雅虎,GOOGLE搜索过来的,显示的流量也就是B站的了! 做垃圾站不可少的一个代码。使用此代码,可以让你A.B两站同时获得IP! 如你的A站不需要搜索来的IP,而B又是一个新站的话,可用此代码! 来源:http://www.mytension.cn/archives/359/ 让你的新网站IP狂涨的一个代码!

, ,