在上次视频中,第一次使用 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