在上次视频中,第一次使用 WMLScript 脚本, 就是一个简单的验证 登陆程序,

没有涉及其他一些常用的功能。

这次我们要编写一个 计算器, 这个计算器使用 WMLScript 脚本来运算,把运算结果再返回给

.wml 页面, 再进行显示。

比起上次视频多了一些步骤, 还有一些数据类型的转换。

好,下面我们在上次的视频 代码中 进行修改。 先回顾一下上次的视频。

这就是上次的一个登陆程序,我现在修改一下。

==============================

你现在看上去就是一个 2个文本框, 就是2个数相加的 简单程序。

因为现在需要 把

   <input name="num1" size="4" />

   + <br/>

   <input name="num2" size="4" />

num1 和 num2 这两个数, 传给 WMLScript 的函数,然后再进行计算。

所以, 函数需要在原来的基础上增加一个参数才可以。

   <a href="wml_08.wmls#disp('num1','num2')">
    Submit
   </a>

当然,在 WMLScript 中的函数也同时要增加, 不然参数的数量不一样就会出错。

extern function disp(str1,str2)
{
 var num1 = WMLBrowser.getVar( str1 );

 var num2 = WMLBrowser.getVar( str2 );
}

暂时不使用的语句, 可以用 // 来注释掉。 说明这一行语句不会被执行的。

 var sum = num1 + num2;

 Dialogs.alert( sum );

这样就会 打印 2个相加的值了。我们测试一下。

输入 2 + 3 , 但是结果显示 23 。。。。

这是因为

 var num1 = WMLBrowser.getVar( str1 );

 var num2 = WMLBrowser.getVar( str2 );

num1 和 num2 并不是数字类型, 是字符类型,

也就是 var sum = "2" + "3" 那当然就是变成 23 了。

我们现在 做一个数据转换, 把 字符类型 转为 数字类型

这样就可以 进行运算操作了。Lang.parseInt() 函数,就是把字符类型转为数字类型的。

我们现在再测试一下, 现在就成功 得到了 2+3=5 了, 呵呵。

=====================================

现在问题又来了, 如何把 这个 5 传回到 我们的 .wml 页面呢?

这就需要多一个 变量才行

    <setvar name="message" value="" />

这是什么意思呢 ? 这就是声明一个 message 并且让它为空 "" 值,

然后我们再把它 传到WMLScript 脚本中, 把 运算结果 5 赋值给它,这样message 就等于5了

这样就可以在 .wml 文件中显示出来

 WMLBrowser.setVar( msg , sum );

  <p> $(message)</p>

测试一下, 出现一个错误,看看, 可以了, 可能是刚才没有刷新的原因的把。

现在这个显示页面就是 .wml 文件中的 卡片card2 的内容了。

我们再修改一下吧

<p>$(num1) + $(num2) = $(message)</p>

这样显示就比较清楚了。。 或者再从头载入一次。

是吧, 这样一个简单的计算器就出来, 当然你可以 改成其他运算, 2个数相减,

或者 乘除 ,都可以,或者多几个数 运算都可以。好了视频就到这里,谢谢观看!8


“wml_09 编写简单的计算器( 涉及WMLScript传值,数据类型转换 问题 )”没有评论

有任何疑问或建议,可以给作者留言: