搜索
查看: 5255|回复: 9

[HTML] HTMLayout中SELECT 选中项的数值获取方

  [复制链接]

47

主题

178

帖子

1167

积分

荣誉会员

Rank: 8Rank: 8

积分
1167
发表于 2013-7-16 19:34:19 | 显示全部楼层 |阅读模式
本帖最后由 wznjsy 于 2013-7-16 22:43 编辑

HTMLayout  获取SELECT 选中项的时候,如果VALUE是数字,按照常规的获取方式有可能得不到想要的结果。昨天有幸得到 lujjjh 提供代码,不敢独享。放在这里,以便大家查阅。谢谢 lujjjh

原因在4楼。

  1. import win.ui;
  2. /*DSG{{*/
  3. winform = ..win.form( bottom=399;parent=...;text="aardio Form";right=599 )
  4. winform.add(
  5. layoutWindow={ dr=1;dl=1;bottom=382;right=580;left=10;multiline=1;top=12;notify=1;z=1;db=1;dt=1;cls="edit" }
  6. )
  7. /*}}*/

  8. import web.layout;
  9. io.open();
  10. wbLayout = web.layout(winform.layoutWindow);

  11. wbLayout.html =/***
  12. <html>
  13. <body>
  14.         <div id="my-button" >查看北京或者上海的值</div>
  15.         <select id="province" style="margin-top: 10">
  16.                 <option value="0.800">北京</option>
  17.                 <option value="0100">上海</option>
  18.                 <option value="0111">广州</option>
  19.                
  20.         </select>
  21. </body>
  22. </html>
  23. ***/

  24. io.open()
  25. var layoutEle = wbLayout.getEle("my-button")
  26. layoutEle.onMouseClick = function( ltTarget,ltEle,x,y,mouseParams ) {
  27.         io.print("错误的", wbLayout.getEle("province").value);
  28.         io.print("正确的",wbLayout.$1("#province option:checked").getAttribute("value"));
  29. }

  30. //调用此函数节点可响应HTML事件
  31. layoutEle.attachEventHandler();

  32. winform.show()
  33. win.loopMessage();

复制代码
回复

使用道具 举报

117

主题

1237

帖子

6592

积分

六级会员

Rank: 9Rank: 9Rank: 9

积分
6592
发表于 2013-7-16 19:55:55 | 显示全部楼层

[code]import win.ui; /*DSG{{*/ winform = ..win.form( bottom=399;parent=...;tex

  1. import win.ui;
  2. /*DSG{{*/
  3. winform = ..win.form( bottom=399;parent=...;text="aardio Form";right=599 )
  4. winform.add(
  5. layoutWindow={ dr=1;dl=1;bottom=382;right=580;left=10;multiline=1;top=12;notify=1;z=1;db=1;dt=1;cls="edit" }
  6. )
  7. /*}}*/

  8. import web.layout;
  9. wbLayout = web.layout(winform.layoutWindow);

  10. wbLayout.html =/***
  11. <html>
  12. <body>
  13.         <div id="my-button" >查看北京或者上海的值</div>
  14.         <select id="province" style="margin-top: 10">
  15.                 <option value="0.800">北京</option>
  16.                 <option value="0100">上海</option>
  17.                 <option value="0111">广州</option>
  18.                
  19.         </select>
  20. </body>
  21. </html>
  22. ***/


  23. var ele=wbLayout.queryEle("#province")
  24. ele.onSelectSelectionChanged = function (ltTarget,ltEle,reason,behaviorParams){
  25.         io.print(ele.value);
  26. }
  27. ele.attachEventHandler()

  28. io.open();
  29. winform.show()
  30. win.loopMessage();
复制代码
我是菜鸟...
回复

使用道具 举报

47

主题

178

帖子

1167

积分

荣誉会员

Rank: 8Rank: 8

积分
1167
 楼主| 发表于 2013-7-16 20:30:01 | 显示全部楼层

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=59883&ptid=10564][c


这个获取到的值还是错误的哦
回复

使用道具 举报

33

主题

543

帖子

3304

积分

荣誉会员

Rank: 8Rank: 8

积分
3304
发表于 2013-7-16 22:25:33 | 显示全部楼层

不是说会错误,而是 HTML 中无论属性值是字符串还是数值,都必须加上引号,HTMLayout 又会猜测你的 value 的类型,自动转换成数字了。

不是说会错误,而是 HTML 中无论属性值是字符串还是数值,都必须加上引号,HTMLayout 又会猜测你的 value 的类型,自动转换成数字了。
回复

使用道具 举报

47

主题

178

帖子

1167

积分

荣誉会员

Rank: 8Rank: 8

积分
1167
 楼主| 发表于 2013-7-16 22:42:00 | 显示全部楼层

嗯嗯 已经修正。

嗯嗯  已经修正。
回复

使用道具 举报

9

主题

462

帖子

2551

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2551
发表于 2013-7-17 14:59:42 | 显示全部楼层

value里可以写数值的,你写 0100 就是8进制的64了。 只有value属性才能支持8进制的数值。如果不需要这个功能可以用其他的名字就行了,例如 [qu

value里可以写数值的,你写 0100 就是8进制的64了。
只有value属性才能支持8进制的数值。如果不需要这个功能可以用其他的名字就行了,例如
wbLayout.queryEle("#province option:checked").value2
回复

使用道具 举报

9

主题

462

帖子

2551

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2551
发表于 2013-7-17 15:05:19 | 显示全部楼层

或者你强制他是一个字符串也可以,HTML里写: [quote][/quote] aa

或者你强制他是一个字符串也可以,HTML里写:
<option value="$0.800">北京</option>


aardio里这样写:
string.right( wbLayout.getEle("province").value,-2 )
回复

使用道具 举报

47

主题

178

帖子

1167

积分

荣誉会员

Rank: 8Rank: 8

积分
1167
 楼主| 发表于 2013-7-19 10:05:03 | 显示全部楼层

办法始终比问题多。谢谢 Roger

办法始终比问题多。谢谢 Roger
回复

使用道具 举报

9

主题

96

帖子

626

积分

三级会员

叫我何细尔

Rank: 4

积分
626
QQ
发表于 2013-7-25 07:13:26 | 显示全部楼层

强。学习了一个小窍门

强。学习了一个小窍门
回复

使用道具 举报

5

主题

17

帖子

113

积分

一级会员

Rank: 2

积分
113
发表于 2015-7-17 11:10:56 | 显示全部楼层

怎么添加一个option啊?

怎么添加一个option啊?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-16 19:25 , Processed in 0.062500 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表