Angular Select Dropdown带有一个选项,允许用户添加自定义选项
Angular Select Dropdown with an option to let the user add a custom option
我有一个HTML Select Dropdown表单,它要求用户从一些预先选择的安全问题中选择一个问题。(例如"你最喜欢的城市是什么"、"你的车是什么颜色"等)
如何在列表中添加另一个选项,如"编写自己的问题",当用户选择该选项时,会显示一个新的输入框,供用户编写自己的提问。
我能想到的一种策略是创建一个带有ng-show的输入元素,根据Select的值来隐藏/显示它。有更好的方法吗?
这里有一种完全无JS的可能性:HTML组合框,带有键入条目的选项,可能需要在<select>
标记中使用ng-options
指令。
然而,如果你更喜欢使用导入的库,你可以先在最后一个选项中插入一个文本输入框:
<select ng-model="selectedItem">
<option ng-repeat="item in items" value="{{item}}">{{item}}</option>
<option ng-blur="addItem()"><input type="text" placeholder="Write your own" id="newItem"></option>
</select>
然后定义ng模糊函数,将新项目添加到项目数组中的项目列表中:
addItem = function () {
$scope.items[] = document.getElementById("newItem").value;
}
您的变量名称可能会有所不同,但如果需要,这是我会使用的基本过程。可能还有一个更好的(Angular)指令或函数可以更好地获取注入的文本框的值(可能是通过名称或父子关系)。
希望这能为你指明正确的方向。
谢谢,
Chris
您最好的选择可能是编写一个自定义指令,模拟一个选择框(可能使用样式化的单选按钮),但在其中添加一个额外的输入选项。我为几个项目做过类似的事情,认为这不是特别困难,但有很多需要考虑(包括可访问性和键盘控制)。
或者你可以在网上找到许多开源指令中的一个。虽然这可能不是你想要的,但用户界面选择可能是一个不错的选择。
相关文章:
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 我们如何在互联网断开连接或用户关闭选项卡/浏览器时调用注销servlet
- 如何检测用户是否在同一会话中打开了多个窗口或选项卡
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 在用户关闭/更改移动浏览器选项卡之前进行检测
- 计算用户从多个文件中选择的选项数量
- 询问用户何时尝试关闭浏览器选项卡
- 在Chrome for iOS中,附加到用户代理字符串的唯一选项卡ID
- 管理socket.io中的多个选项卡(但为同一用户)
- 如何防止用户使用浏览器选项禁用脚本
- 当用户在选择框中选择选项时,使用window.location.href重定向用户只会更改导航器中URL的最后一位
- 当用户关闭浏览器选项卡时,如何使用 PHP 或 javascript 从我的站点注销用户
- 用户界面先前选择的选项选择更改
- 读取一个本地文件,编码为base64,我想给用户一个将结果保存到文件的选项
- 当用户单击时,在新选项卡中打开链接
- 多选项卡LocalStorage单用户用例
- Chrome:在用户打开一个选择后添加选项
- 在我的html页面-web应用程序用户界面的一个选项卡中的另一个html页面中的选项卡
- 获取用户选择的选项的值
- 如何更改用户选项更改时中的Onchange事件中Visual Composer上的按钮(选择选项)