网络编程
位置:首页>> 网络编程>> JavaScript>> Mootools 1.2教程(8)——输入过滤第一部分(数字)(2)

Mootools 1.2教程(8)——输入过滤第一部分(数字)(2)

作者:Fdream 来源:Fdream博客 发布时间:2008-11-27 13:01:00 

标签:mootools,过滤,数字,教程,javascript

$type()

$type()是另外一个来自MooTools的令人不可思议的简单和有用的东西。它可以检查你传入的无论什么变量,然后返回一个字符串,告诉你这个变量是什么类型:

参考代码:


var checkType = function(variable_to_check){
    var variable_type = $type(variable_to_check);
    alert("Variable is a : " + variable_type);
}


那里还有许多$type()方法可以检测的类型——你可以在这个Core.$type()文档中找到一个完整的列表。不过现在,我们真正关心的是怎么检测整数。如果我们在

toIntDemo()方法中使用$type()方法,那么我们就可以很容易地处理那些toInt()不能处理的输入了:

参考代码: 

var toIntDemo = function(make_me_a_number){
    //Try to make the input number
    var number = make_me_a_number.toInt();
 
    //If That didn't work, set number to 0
    if ($type(number) != 'number'){number = 0;}
    alert('Best Attempt : ' + number);
}


当我们把它们和changeColor()方法组合起来,我们就可以得到一个几乎接近完美的解决方案了:

参考代码: 


var changeColor_2 = function(red_value, green_value, blue_value){
    //Try to make sure everything is an integer
    red_value = red_value.toInt();
    green_value = green_value.toInt();
    blue_value = blue_value.toInt();
 
    //Set default values on anything thats Not a Number
    if ($type(red_value)   != 'number'){red_value = 0;}
    if ($type(green_value) != 'number'){green_value = 0;}
    if ($type(blue_value)  != 'number'){blue_value = 0;}
 
    //Calculate hex value
    var color = [red_value, green_value, blue_value].rgbToHex(); 
    alert('Converts to : ' + color); 
}


最后一个方法中传给rgbToHex()方法的数字超过了RGB允许值0-255的范围,这个值还是被忠实地转换成了它的十六进制值。不幸的是,这意味着我们接受了一个超过那个范围的数字,我们将不能得到一个有效的十六进

制颜色值。幸运的是,MooTools中哎呦另外一个方法,我们可以用来处理这个问题。

limit()

MooTools中的limit()方法也是非常简单直接的。你可以在一个数字上面调用这个方法,传入一个这个数字允许的最小值和一个允许的最大值作为参

数,它会自动地进行舍入处理。你还需要牢记这一点:limit方法需要传入整数参数,因此一般在使用limit方法之前先对你要指定为数字的东西(或者其他在数字集合(

Number Collection)里面的东西)使用toInt()方法。

参考代码:

var limitDemo = function(number_to_limit){
    //Do our best to get an integer
    number_to_limit = number_to_limit.toInt();
 
    //Get the limited value
    var limited_number = number_to_limit.limit(0, 255);
    alert("Number Limited To : " + limited_number);
}

0
投稿

猜你喜欢

  • 阅读上一篇:FrontPage XP设计教程4——Css样式表的应用表单在网站的制作过程中是比较常见的,举个简单的例子,我们在申请免费电子信
  • 如何制作关联的下拉菜单?看看代码:<form name=f1 METHOD="POST">
  • 今天想说的是内容和容器的关系,顺便把之前设计中碰到的问题和大家一起探讨下。我们从软件的设置说起。(这里以QQ的设置举例)一个软件的设置(常称
  • 下面是我写的NumericStepper:谢谢 果果 和 Rimifon , 我对代码进行了完善, 支持自适应小数位数:
  • 前些日子有网友问:将ASP纪录集输出成n列的的表格形式显示的方法?现在写了一个,方便大家使用。'定义变量 Dim cn,r
  • 网页设计是由很多个不同的元素构成的,而这些元素的重要性都不同,并且有些元素还需要尤为的突出.有些元素彼此之间存在着联系,而另外的元素之间则一
  • 刚开始进入页面,当滚动向下超过原屏的时候。右侧会出现一个“返回顶部”的按钮。这个按钮会跟这网页一起向上向下,当滚动到顶部的时候。“返回顶部”
  • 用ASP.NET与SQL SERVER可是缘份最好了,稍大的程序一般第一先考虑的是SQL SERVER,只是一些很考虑经济的才使用ACCES
  • 如果不是因为总监审查严格,一定要求这个细节解决掉,也许我也不会去深究根源性的解决办法,再此感谢MTIME负责而严格的同事。首先描述一下问题:
  • 前段时间我们部门的粉丝和布林同学都写过关于这个问题的文章。刚好阅读了关于这个问题的其他争论文章。所以顺便在这补充几点。首先说明这里讨论的是在
  • 错误15105,从网上找了一些解决方案,一般都是说文件的权限不足的问题,当然附加的时候必须是有数据库附加权限才可以操作的。解决办法1:给相应
  • Google Talk是一个功能很简洁的即时通讯工具,尤其是它的文字输入区域,不同于其他IM,除了一个文字输入区域外没有任何其他操作。但是用
  • 论坛经常有人会问到用CSS如何美化Select标签,其实但凡你看到很酷的都是用javascript来实现的。昨天试着做了一下,基本实现的初级
  • 头疼的挂马事件申请了个免费空间弄了个小站空间还可以二年多了挺稳定的只是从今年年初开始网页老莫名奇妙的被人挂马仔细检查了网站 不存在什么漏洞应
  • 当我们使用访问一个没有声明的变量时,JS会报错;而当我们给一个没有声明的变量赋值时,JS不会报错,相反它会认为我们是要隐式申明一个全局变量。
  • ASP里两种常用的生成文件的方式是:利用ADODB.Stream生成文件和利用Scripting.FileSystemObject生成文件1
  • 互联网上不计其数的信息本质上都是一个一个的HTML文档组成的,通过链接将它们串联起整个互联网。这就犹如骨肉之于人体一样,只有通过经脉才能将它
  • 在实用美术中,常有"远看色彩近看花,先看颜色后看花,七分颜色三分花"的说法。这也就说明,在任何设计中,色彩对视觉的刺激起
  • 集群是一种实现高可用性的有效解决方案,有时它会适得其反。而且,它还非常昂贵。因此,数据库管理员可使用日志转移代替集群来提供较高的可用性。日志
  • 快速掌握 Mysql数据库对文件操作的封装在查看Mysql对文件的操作中,它在不同的操作系统上对文件的操作,除了使用标准C运行库函数,包括o
手机版 网络编程 asp之家 www.aspxhome.com