起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3968|回复: 7

[结贴] messageDialog无法实现Prompt,显示后js不能等待用户输入

[复制链接]

26

主题

72

帖子

294

积分

中级会员

Rank: 3Rank: 3

积分
294
QQ
发表于 2017-3-22 14:47:53 | 显示全部楼层 |阅读模式
版本: BeX5V3.5 小版本号: 5112
数据库: MS SQLServer 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: IE10
BeX5 3.5
想用messageDialog控件实现js的prompt功能。
但是messageDialog显示后,程序并没有停下等待用户输入,而是直接执行后续的js代码了。

请问这是BUG吗?
如果想要停下等待用户输入,然后根据用户输入的内容进行不同的处理的话,要怎么实现?

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35913
发表于 2017-3-22 15:24:02 | 显示全部楼层
而是直接执行后续的js代码了什么意思?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

26

主题

72

帖子

294

积分

中级会员

Rank: 3Rank: 3

积分
294
QQ
 楼主| 发表于 2017-3-22 16:21:37 | 显示全部楼层
本帖最后由 jjbboox 于 2017-3-22 16:24 编辑
jishuang 发表于 2017-3-22 15:24
而是直接执行后续的js代码了什么意思?

比如下面的这个按钮事件。
显示messageDialog后,会直接执行alert方法,此时因为用户尚未在Prompt对话框中输入内容,导致alert会在用户输入完之前就显示了。此时alert出来的是a=undefined
并不像正常js的prompt方法那样等待用户输入以后才执行后续的alert。请问要如何才能获得类似js的prompt函数的效果?

  1. Model.prototype.btnQualifiedClick = function(event){
  2.      var msgBox = this.comp('messageDialog1');
  3.      msgBox.show({type:'Prompt'});
  4.      var a = msgBox.inputValue;
  5.      alert('a=' + a);
  6. },
复制代码

回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35913
发表于 2017-3-22 17:10:26 | 显示全部楼层
messageDialog是异步的,你可以在messageDialog的事件中设置
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

26

主题

72

帖子

294

积分

中级会员

Rank: 3Rank: 3

积分
294
QQ
 楼主| 发表于 2017-3-22 17:39:20 | 显示全部楼层
你的意思我只能用js的标准的prompt方法对吗?
X5有现成的非异步的对话框可以用吗?类似js的 confirm,prompt,alert这3个最基本的功能。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35913
发表于 2017-3-22 17:41:42 | 显示全部楼层
不能在messageDialog的事件中去执行下面的吗?

有一个最基础dialog的,但里面没有类型的设置,只有messageDialog有这个设置
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

26

主题

72

帖子

294

积分

中级会员

Rank: 3Rank: 3

积分
294
QQ
 楼主| 发表于 2017-3-22 18:48:17 | 显示全部楼层
放到messageDialog的事件中去处理当然不是不可以。
但这样会把一个完整的处理拆开,增加处理难度。

而且,画面复杂一点的话,一个画面会有很多地方要用到类似的处理,但是后面的处理又都是不同的,那就是每一处应用都要分别用一个不同的messageDialog去处理,搞到最后代码会很乱,可读性更是会变差。

既然是照着confirm, prompt, alert去做的,当然用法上最好也是一样,对吧。

目前的messsageDialog实现不了,我也不会用您提供的方法去实现,大不了就用js的标准方法,就是难看点罢了。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35913
发表于 2017-3-23 11:13:45 | 显示全部楼层
那就需要自己用标准的prompt
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-19 21:41 , Processed in 0.066638 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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