复选框选中时文字添加到文本框

这篇教程,本来我只想简单写写。

但是,我不能容忍不完美的自己。

所以,我把交互做的尽量完善,并把它描述出来,争取每一篇教程都让大家眼前一浪。

看到这么努力的我,还不快来宠幸我?

嘿嘿,我们先来看看要实现什么?

这里,有多个城市的复选框,选中复选框时,在文本框中会出现城市的名称。

你看我屌吗?

说!

看不看?

不是...屌不屌?

好,继续!

当取消某个城市复选框的选中时,文本框中相应的城市名称消失。

image

是不是好屌?

还没完,后面更爽!

删除文本框中某个城市名称的时候,复选框的选中同步取消!

image

我艹!这个屌!这个屌!

那么,这些交互都是如何实现的呢?

先别忙!

看到这样目测很复杂的交互,总会有些人开始表示不屑:

Axure学那么深干嘛?这样的东西太浪费时间了吧?原型主要是沟通,做那么高保真有什么用?

呵呵你三叔个哒!那是你!

但你不能代表全人类!

作为一个产品相关的职业者,这么说话,注定你的产品视角狭隘!

学的深是为了更高的效率和应用,只有不了解的人才会说Axure只能做产品原型。

去百度一下Axure,看看使用人群都有哪些好吗?

做交互浪费时间?

如果你学得好,都是分分钟的事!

特别是有些内容,做完一遍可以重复使用。

例如马上要讲的这个案例,就能直接拿走放在一些原型中使用。

最后,你不做交互体验测试,你不洽谈投资,你不投标项目,你怎么知道高保真原型没用?

好了,我发泄完了!

下面开始分析这个案例的关键。

1、文本框没有任何内容时,显示“未选择城市”的提示,添加内容时该提示消失。

2、复选框选中时,要在文本框已有文字后方增加当前复选框的元件文字。

3、复选框取消选中时,要在文本框的内容中清除相应的城市名称。

4、文本框中删除某个城市名称时,对应的复选框同步取消选中。

我们先分析这么多,在后面的制作过程中,我们会遇到一些问题,到时再继续分析。

第一步,我们准备两个元件,一个是复选框,另一个是多行文本框(命名为“CityInput”)。

根据思路分析第1点,我们需要给多行文本框元件“CityInput”在属性中添加提示文字。

image

第二步,根据思路分析第2点,我们在复选框【选中时】设置交互,添加动作【设置文本】于目标元件文本框“CityInput”为目标元件的现有文本连接当前复选框的文本,并以“,”分隔。

目标元件现有文本,我们可以通过“[[Target.text]]”获取,当前元件的文本可以通过“[[This.text]]”获取。

那么,上述公式中的系统变量“Target”即目标元件,“This”即当前元件,“text”即元件文本。

如果不了解系统变量,请先阅读《AxureRP制作原型中变量的使用(3) 》。

最终,我们通过公式“[[Target.text]],[[This.text]]”,就能够完成我们要的效果。

image

不过,这个时候大家预览原型,选中复选框,会发现一个软件的Bug,就是我们设置的提示文字“未选择城市”留在了文本框中。

艹,先不管,后面再搞它!

第三步,根据思路分析第3点,复选框【取消选中时】设置交互,添加动作【设置文本】于目标元件文本框“CityInput”。

这里我们要把文本框中相应的城市名称剔除。

换一种说法就是,把文本框中,与取消选中复选框文本相同的城市名称替换为空白。

这里,我们可以把公式写成“[[Target.text.replace(This.text,'')]]”。

用白话念的话,把“.”念成“的”,就是“目标元件的元件文本的替换方法(当前元件的元件文本,空白)”。

公式中的函数replace能够对文本内容进行替换,第一个参数是被替换的内容,第二个参数是替换后的内容。

image

第四步,我们先不做思路第4点,我们先把前面的Bug解决掉。

在文本框内容改变的时候,我们可以把多余的内容替换成空白。

也就是在文本框元件“CityInput”的【文本改变时】设置交互,添加动作【设置文本】于“当前元件”为“[[This.text.replace('未选择地区,','')]]”。

image

当完成这一步之后,你会发现还有更多问题等着你!

呜哈哈哈哈哈哈哈!

此时此刻,我想淫湿一手...

《复选框交互出问题啦!》

共有五个复选框,

我把他们都选上,

然后取消1、3、5,

问题多的想撞墙!

好诗!!!

有问题解决问题,是我一贯硬挺的作风。

说干就干!

还是先进行思路分析:

5、文本框内容发生改变时,如果文本中出现两个乱搞的逗号,把它们变成一个。

6、文本框内容发生改变时,如果文本的第一位是逗号,就从第二位开始截取到末尾。

7、文本框内容发生改变时,如果文本的末尾是逗号,就从第一位开始截取,截取比当前文本少一位的数量。

分析完毕,开始设置交互。

第五步,根据思路分析第5点,判断当前元件文字是否包含“,,”,符合条件时,执行动作【设置文本】于“当前元件”为“[[This.text.replace(',,',',')]]”。

第六步,根据思路分析第6点,判断当前元件文字第1位是否为“,”,获取元件文字的第一位我们通过公式“[[This.text.charAt(0)]]”获取。

函数charAt能够获取指定位置的字符,字符串索引位置从0开始,也就是说第一位的位置就是0。

当符合上述条件时,执行动作【设置文本】于“当前元件”为“[[This.text.substr(1)]]”。

函数substr能够对文本进行截取,只输入一个参数时,表示从指定位置截取到末尾。字符串索引位置从0开始,所以这里参数为1,就是从第二位截取到末尾。

第七步,根据思路分析第7点,判断当前元件文字末尾是否为“,”,获取元件文字的最末位我们通过公式“[[This.text.slice(-1)]]”获取。

函数slice也是文本截取函数,参数为负数时表示从后向前读取位置,-1就是倒数第一位,只输入一个参数时,表示从指定位置截取到末尾。

当符合上述条件时,执行动作【设置文本】于“当前元件”为“[[This.text.substr(0,This.text.length-1)]]”。

函数substr,输入两个参数时,第一个参数为截取的起始位置,第二个参数为截取的数量。

系统变量length能够获取文本的长度,也就是字符数量,所以第二个参数“This.text.length-1”表示获取文本当前的字符数量然后进行减1的计算。

通过这样的操作,我们就能舍弃掉文本的最后一位。

但是,这样还有问题,当我们手动输入内容时,逗号是不能输入的。

所以,条件判断中,还要判断文本框元件是否获取焦点的状态。

因为,手动输入时是获取焦点的状态,而通过复选框输入是没有获取焦点的状态。

但是,条件判断中,并没有直接判断焦点是否在元件的功能。

不过,我们可以判断【焦点元件文字】【!=】“当前元件”的【元件文字】来实现这个判断。

如果不相等,则说明是通过复选框选择在输入,就可以去除右侧的逗号。

image

接下来,我们要完成思路分析第4点,删除城市名称时,将对应的复选框取消选中。

触发很明显,是文本内容改变时。

但是,要做什么呢?

添加多个条件判断,分别去判断当前元件的文字是否包含每一个复选框的文字吗?

那样能够完成,但是太复杂!

我的想法是这样:

4.1、让每个复选框自己去判断自己的文本是否没有被文本框的文本包含,如果不包含的话取消选中自己的选中。

4.2、文本框内容发生改变时,给这些复选框发一个指令让他们自己去执行自己的判断和动作。

有了思路,接下来就是实现过程。

第八步,其实我在复制复选框为多个之前,已经偷偷摸摸的干了一件事,就是思路分析第4.1点!

我给复选框的【载入时】添加了交互,设置条件判断元件“CityInput”的元件文字是否包含“当前元件”的元件文字,符合条件的话执行动作【选中】“当前元件”。

做完这个设置之后,才把复选框复制为多个,编辑为不同的城市名称。

大家现在可以设置完一个复选框的【载入时】交互后,点中【载入时】进行Ctrl+C的复制操作(或者在上面点右键选择复制),然后,点中另一个复选框元件,进行Ctrl+V的粘贴操作(点中元件就粘贴,没有多余操作,很神奇的哦!),这样就能够把交互复制粘贴给其他复选框。

第九步,根据思路第4.2点,我们为元件“CityInput”添加交互,在之前【文本改变时】添加的case1中再增加一个动作。

这个动作叫【触发事件】,通过这个动作我们触发每一个复选框的【载入时】事件。

到这里,这个案例我们就制作完成了。

另外,当复选框数量很多时这种方法也显得繁琐,我在源文件中提供了一种使用中继器的实现方法,再多复选框也只是在数据集中添加城市名称。

还有就是,当显示城市名称的元件不是文本框时如何操作?

在源文件中,我也给出了答案。

最后,再说点题外话。

大家有没有觉得我的东西好长?

没办法,为了让更多的人能爽,我只能尽量长一些,细一些!

我的每篇教程都要写3个小时以上,比如这篇写了4个小时。

不过,相比给某一个人解答问题,我更乐于把时间放在写教程上,这样才能帮助更多的人。

所以,那些私聊我问问题受到冷落,在背后说我坏话的人,羞愧去吧!

还有,那些问问题连个“请”字都不会说,问完问题连个“谢”字都没有的人,一边玩儿去吧!

最后,邀请大家关注微信订阅号“iaxure”(二维码在本站首页右上方),及时获取本站最新动态内容。

硬广插入:《两天掌握Axure RP 8》线下培训,北京、上海正在招生,报名地址https://www.axure.com.cn/product/training/。

源文件下载:http://downloads.iaxure.com/checkbox_input_new.rp

本文参考http://www.iaxure.com/5955.html
http://www.woshipm.com/rp/1095602.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,513评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,312评论 1 305
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,124评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,529评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,937评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,913评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,084评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,816评论 0 205
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,593评论 1 249
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,788评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,267评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,601评论 3 261
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,265评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,158评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,953评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,066评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,852评论 2 277

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    X先生_未知数的X阅读 15,937评论 3 118
  • 在我看来,人类感情分为三种 第一种是暗恋,感觉羞涩且美好,。 第二种是爱对方,对方不爱你,感觉糟糕透了,在这样的感...
    支吱阅读 171评论 0 0
  • 秀丽江山惹人爱, 瓦兰的天空飘云彩。 高山松柏春常在, 幽谷兰香如仙界。 千年林木气象新, 天然氧吧舒胸怀! 溪水...
    沃田源阅读 498评论 3 2
  • 挖掘表面之后的原理,如果能够加以借鉴和创新就非常好了! 第一步学习原理和入门, 第二步深入挖掘和实践! 第三步融汇...
    风清杨阅读 126评论 0 0
  • 清晨六点,在一个美梦的氛围中醒来,充足的睡眠给了我充盈的精力。 洗漱过后,站在阳台,呼吸着新鲜的空气,迎着朝阳锻炼...
    大辉在社会学社会学阅读 251评论 0 0