【Axure教程】通过文本框维护下拉列表选项

news/2024/11/9 0:42:49/

下拉列表(Dropdown List)是一种常见的用户界面元素,用于提供一组选项供用户选择。它通常以一个展开的列表形式出现,用户可以点击或选择列表中的一个选项。一般来说,他的选项值是由系统代码组成的,所以一般是不能维护里里面的选项值,但是经常会出现需要动态维护下拉列表的选项这种需求。所以今天就教大家如何通过输入框动态维护下拉列表里面的选项值。

一、效果展示

  1. 在输入框里新增或者修改选项,维护后下拉列表选项和输入框里的一致
  2. 选项可以手动修改,也可以批量复制到输入框

【原型预览及下载地址】

https://axhub.im/ax9/09b38389df30358f/#g=1&p=能在输入框里自由编辑选项的下拉列表-js版

二、制作教程

1. 下拉列表的原理

我们如果用axure自带的下拉列表,他只能在编辑界面修改下拉列表的值,没有办法在演示界面修改。但是如果我们知道下拉列表的原型,就可以通过修改代码的方式,实现在演示界面动态维护下拉列表的效果

我们知道axure演示是通过浏览器来实现的,归根到底就是html、js、css代码,这个在以前的js调用的文章里也有详细讲解,所以我们可以通过代码调用,调用下拉列表,那下拉列表的html代码其实就是:

<select>

  <option value=”值”>选项1</option>
  <option value=”值”>选项2</option>
  <option value=”值”>选项3</option>
  <option value=”值”>选项4</option>

</select>

可以看到其实他的选项值就是  <option value=”值”>选项1</option>,所以我们要对输入框里的文本值做变换,变换成上面的格式,然后在修改代码,这样就可以替换下拉列表里的选项值了

2. 文本框里文本的处理

那我们怎样对文本框里的值进行处理呢?如果可以有特殊标记的话,例如用每个选项用【】包围,这样我们用replace函数就可以实现了,  将【的值替换成<option value=”值”>,将】的值替换成</option>,但是这种方式会限制了用户输入,必须【选项】这种格式来输入,这样就很不方便了。

所以我们就要比较麻烦对函数就行分割了,首先我们要准备几个文本,用来记录和处理文本,我们可以用slice函数,slice函数可以去指定段落的文本出来,例如取前三位就把选项1取出来了,这样我们把选项1组成新的文本,加上以前一后,就变成  <option value=”值”>选项1</option>,然后继续取选项2,直到输入框里的值都取完。

但是这里还有一个问题,用户输入每个选项的长度值是未知的,我们怎样去确定要取多少位呢?这里我们可以用第二个函数indexOf来确认,这个函数可以找出指定内容第一次出现的位置,那我们只需要寻找换行的位置,提取换行之前的内容,再将文本以前一后添加,这样就可以将字符转为对应的格式。

那我们只需要写个循环,先提取第一行的选项1,将格式转为  <option value=”值”>选项1</option>,然后在去第二行的选项2,将格式转为<option value=”值”>选项2</option>,在通过设置文本,将他和前面记录的<option value=”值”>选项1</option>合在一起,这里用在target.text后面增加新提取合并的文本即可。

上面是存在换行的条件,如果已经是最后一行,就没有换,那我们就判断输入框是否为空,那如果不为空,最后一个选项就是输入框里的文本你,我们直接将他提取合并即可。

那如果值为空,我们就提取完成结束循环,结束循环我们用设置文本的交互,将提取完成的选项值设置到通过设置文本,设置到<select></select>里面,然后触发js重新调用输入框就可以了。

到这里我们基本级完成了,如果需要调整下拉列表的尺寸,我们也可以通过width和height字段修改,例如宽200高30的输入框,我们就可以写成这样<select style=”width: 200px; height: 30px;” >

这样我们就制作完成了通过文本框维护下拉列表选项的原型模板了,下次使用时,只需要复制粘贴,修改输入框里的选项文字,即可自动实现动态维护下拉列表选项的效果了,是不是很方便呢?当然,后续你们也可以根据需要,增加一些效果,例如把输入框放在弹窗里,通过按钮显示弹窗,再修改下拉列表的值。

那以上就是本期教程的全部内容,感兴趣的同学们可以动手试试哦,感谢您的阅读,我们下期见。


http://www.ppmy.cn/news/85149.html

相关文章

JAVA LIST 根据对象元素去重

应用场景&#xff1a;在开发中过程中 会存在根据List集合中的对象一个或者多个元素进行去重 1&#xff1a;根据List集合中的对象一个元素进行去重 List<PurchaseHead> organizationPurchaseHeadList purchaseHeadList.stream().collect(Collectors.collectingAndThe…

uniapp前端图片布局时z-index出现的几个问题

目录 图片的z-index是怎么看的 一些规则: 图片没有z-index吗&#xff1f; 图片会优先覆盖其他元素吗&#xff1f; z-index失效 static elative、absolute或fixed的元素 元素的z-index覆盖子元素吗 图片的z-index是怎么看的 z-index属性用于控制元素的堆叠顺序,它只对定位…

进程控制

目录 进程创建 fork函数 写时拷贝 进程终止 进程退出场景 进程常见退出方法 进程等待 进程等待的必要性 进程等待的方法 wait方法 waitpid方法 获取子进程status 等待行为options 进程替换 各类程序替换函数的使用 命名理解 execl函数 execv函数 execlp函数…

利用PaddleOCR识别增值税发票平台验证码(开箱即用)

前言:全国增值税发票查验平台验证码没什么好说的,根据指定的颜色识别验证码中的文字,图片如下 下面直接讲解利用paddleocr识别的思路,为什么使用paddleocr,因为paddle中集成了较好的ocr文字识别模型,开箱即用即可,废话不多说,剑指主题,识别思路步骤如下 步骤如下 1、…

react表格行下载文件方法总结

一、前言 下载文件时&#xff0c;后台接口返回的响应体是文件流格式的&#xff0c;前端接收时如果不进行处理&#xff0c;就会无法正确下载文件&#xff08;有可能会直接打开文件等&#xff09;。 在此记录下react的表格行使用file-saver下载文件的方法。&#xff08;注意不同…

手写源码之Js中的 call() apply() bind()

说多无益, 直接上代码, 肯定还有一些不完善的地方, 我参考了一下 原生js源码之JavaScript的call方法&#xff0c;自己来实现 call() use strictvar person {name: "Tom",sayHi(a, b) {// console.log(a, a)// console.log(b, b)// return this.name " 在向你…

最全面的ETL工具选型指南

什么是ETL? ETL是数据仓库和数据集成领域常用的缩写&#xff0c;代表Extract, Transform, Load&#xff08;提取、转换、加载&#xff09;三个步骤。它是一种数据处理过程&#xff0c;用于从不同的数据源中提取数据、对数据进行转换和清洗&#xff0c;并将处理后的数据加载到…

【Ansys Fluent】All cell zones in Fluent may be automatically set to Fluid.

一、问题背景 在ansys meshing中保存划分完网格之后的结果时&#xff0c;弹出警报——All cell zones in Fluent may be automatically set to Fluid. 如果你忽视这个警报&#xff0c;打开fluent时。 接着就会将你想要设置为solid的区域识别成flow&#xff0c;从而生成一些错…