如果使用UI-Bootstrap's typeahead指令没有找到匹配项,则窗体不可编辑
Form not editable if no match is found using UI-Bootstrap's typeahead directive?
下面是设置预选输入框的相关代码。从本质上讲,用户输入一个名称,然后将相关信息加载到表单的其余部分。在没有找到匹配的情况下,我希望用户仍然能够在表单中输入名称和相关信息。
当没有找到匹配项时,表单不可编辑。例如,如果在名称中输入"John Doe",没有匹配项,则无法在"address"输入框中输入,其代码如下所示。
Typeahead:
<label for="participant-name">Name</label>
<input name="participant-name" typeahead="participant as participant.name for participant in participants | filter:$viewValue | limitTo: 8" type="text" class="form-control" ng-model="entry.participant">
示例输入框:
<label for="participant-street-no">Address</label>
<input name="participant-street-no" type="text" class="form-control" ng-model="entry.participant.street">
这是因为当您在预先输入的条目中键入字符串时。Participant现在是那个字符串,而不是对象。你不能给字符串加上。street。相反,您需要创建一个新对象,取条目。参与者字符串,并将其作为.name分配给该对象,然后设置条目。参与者到对象。
我是这样做的:首先将typeahead edit设置为false。在typeahead输入框中添加一个按钮(bootstrap的输入组在这方面做得很好),显示"New"并隐藏typeahead,并将其替换为另一个具有entry.participant.name模型的输入框。一旦他们点击新建,设置条目。参与者={}。此时你也可以将"New"替换为"Cancel"或"X"。编辑
这是一个活塞!我保持预先输入可编辑,这样您就可以看到当您选择Bob或Jim时与仅键入字符串时模型的不同之处。否则,模型将不会被设置,直到您从下拉菜单中选择一些内容。
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 防止Iframe窗体在新窗口中打开
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 高亮显示时编辑文本大小和颜色
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- Meteor-将选定窗体中的对象添加到集合中
- 将事件聚焦/模糊在可编辑内容的元素上
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 编辑HTML表的源数据
- 主干窗体隐藏字段未呈现
- ExtJS网格单元格编辑器,防止焦点松动问题
- 如何首先设置样式<td>表中包含在窗体中的元素
- 如何在visualstudio中调试web api时编辑javascript文件
- 具有所有样式的文本正在复制到可编辑文本区域
- 可以't使用PHP使用Froala编辑器上传图像URL
- 用Greasemonkey编辑专栏
- 角度可编辑禁用窗体
- Sencha Touch:在窗体面板上显示和编辑HasMany字段
- 如果使用UI-Bootstrap's typeahead指令没有找到匹配项,则窗体不可编辑
- SharePoint 列表,以编辑窗体显示计算字段