关于我们 | 广告服务 | 加盟代理CRM | 返回首页                                                         
设为首页
加入收藏
ASP技术 | .NET技术 | J2EE技术 | PHP技术 | JS技术 | C#技术 | Java技术 | XML技术 | | B/S论坛
 JavaScript系列在浏览器上保存.
 网页常用小技巧
 Javascript实现浏览器菜单命令.
 象QQ一样的自动伸缩菜单
 树型目录菜单
 离开时显示停留时间
 游标广告
 用Js判断输入的时间是否有效.
 如何判断ACTIVEX控件是否下载
 实现打印设置与预览
 不出提示窗口关闭窗口
 点击右键就弹出一个菜单
 跟随鼠标的彩色方格
 前后左右出现的窗口
 自动展开的窗口
 文字在状态栏逐字放入
 文字从状态栏右冒出
 文字从状态栏左冒出
 自动刷新页面
 格式化数字函数FormatNumber
 检测浏览器类型并用声音提示
 使窗口只第一次访问时弹出
 单一表单的多个递交方案
 为何要学JavaScript
 JavaScript修改注册表的例子
 JavaScript写的日历
 按顺序显示图象
 判断输入框不空
 判断Email格式
 控制表单元素的选择
 Iframe的隐藏和显示
 删除字符串中的空格
 全屏显示窗口
 动态的下拉菜单
 去除字符串开头的空格
 浏览器是否安装插件
 检测屏幕的分辨率
 随机显示背景
 Select选项开一窗口
 让焦点自动跳转
 检查电话号码的正确性
 通过超链接提交表单
 

JavaScript系列在浏览器上保存数据

转载自: Builder.com                   人气:8485

JavaScript 能做的事,并不局限于访问HTML 表单的数据;它还能让你创建自己的对象——也就是让你创建储存于客户端的数据。你甚至还能建立包含其它对象的对象。
为什么需要这些功能?一个好的理由就是创建数组(array)。简单来说,数组是一个含有几组相关信息的表格或数据库。在下面的例子当中,我们定义了一个叫做taxTable的对象,该对象包含一个数组,而该数组由五个 name 对象实例所组成。这个数组保存五个州的州名,以及它们相关的税率。然后,当用户在订购表单中输入州名时,我们就在数组中检查它,并自动应用正确的税率。
创建一个5x2的数组,与使用一个快速的 if-then 序列来测试州名相比,使用数组似乎还要做额外的工作。不过,随着条目个数的增加,数组的功能也就变得愈来愈强大。不妨想象有一个拥有五十个州、或五百个销售区、亦或是五千个城市的表格。有了一个数组,你就能够一次建立条目列表,然后每当用户输入新数据时,就可迅速加以引用这个条目列表。
下面这个特殊的JavaScript 代码,开始就像我们的计算(calculation)示例一样。不过这一次,我们并不止于简单的数学计算:
function state(stateName, stateTax){
  //fill the instance with the values passed in
  this.name=stateName;
  this.tax=stateTax;
  //then return the instance of state
  return this;
}


上面定义的state() 函数创建了包括州名与税率的一个州(state)的实例。然而,我们的州此时似乎什么值都没有。下面我们给它们一些值吧。


function taxTable(){
  //the instance of taxTable is filled with
  //an array of state objects
  this[0]=new state("AZ", 0.04);
  this[1]=new state("HI", 0.10);
  this[2]=new state("TX", 0.06);
  this[3]=new state("NJ", 0.08);
  this[4]=new state("", 0.00);
  //return the newly created taxTable to
  //the calling function
  return this;
}


现在,无论taxTable函数何时被调用,我们都创建了五个不同的州实例,分别编号为0到4。这样一来,我们就创建了一个数组,来保存我们所有的税率信息。现在我们需要加以处理一番:
functioncalculateTax(stateValue){
  var index=0;
  var result=0;
  var temp=0;
  首先,我们定义一个称为calculateTax的函数。calculateTax会以初始化一些变量开始。然后,它需要从用户那里取得一个值:
  //while there"s an instance of state
  //in the taxGuide array
  while (taxGuide[index])
  {
    //if the state passed in is in the
    //taxGuide array
    if (stateValue.toUpperCase() == taxGuide[index].name) {
      // put the correct tax rate in "result"
      result = taxGuide[index].tax;
    }
    index++;
  }


  while 循环会持续将用户的输入,与税率表中的所有可能的条目进行比较,直到比完完全部数据。一旦它发现一个匹配(或是没有匹配),它就将适当的税率写入 result 变量中。然后我们可以使用该税率来计算总量,然后将其加至我们的总额之中。
  {
 calcTotal();
    var temp1 = document.orderForm.totalPrice.value;
    // calculate total with tax
    var temp2 = (parseFloat(temp1) * (1 + parseFloat(result)));
    // chop off extra decimal places
    vartotalWithTax = (Math.round(temp2 * 100)) / 100;
    // change value in form
    document.orderForm.totalPrice.value =
    totalWithTax;
  }
  上面的代码计算包括税金在内的全部费用。首先,我们设定变量temp1 的值等于totalPrice表单元素的值。然后,我们再计算税后总额,并将其值赋给“temp2”。下一行代码则使用Math.round方法舍去额外的小数位,然后将新的总额赋值给totalWithTax变量。接下来,我们将此总额送回到订购表单之中。

如有疑问,请赐电邮:chinabs2004@163.com OICQ:28194826
中盈信安有限公司
中国BS网版权所有     Copyright chinabs.net
粤ICP备05004724号