这是一个 jQuery/js 专业人士:
我还没有完成这个项目,只是因为我的部分代码行为不一致……。在我写完之后,我听到你们中的一个人说:“代码中没有不一致的行为,只有不想要的行为。”
关于设置的注意事项:
- 在 Web 应用程序中编辑记录
- 使用 .change() 启动我的脚本。
- 字段中的初始值通过 js 与所做的更改进行比较。
- 比较检查新值是否,1) 与原始值相同,2) 列表中的现有值,3) 列表中不包含的新值。
- 使用 jQuery FlexBox 在输入字段上创建类似 google 建议的行为(可能的匹配项会在您键入时显示在框中,但不会强加给您)。
期望的行为:
- 用户可以通过以下方式添加一个新值:1) 键入完整值并离开该字段,2) 键入部分值,然后按 Tab 键以选择建议的值,或 3) 键入部分值,然后单击框中的建议值。
- 逻辑在这些事件之一之后运行。
问题:
- 如果用户单击框中的建议值(上面的数字 3),则逻辑会在该值添加到输入之前运行。这是因为浏览器检测到他们离开了输入字段,从而触发了.change()。这会导致代码将空字符串或部分拼写的单词与现有值列表进行比较。然后逻辑确定他们的选择始终是一个全新的值。
我该如何克服这个问题?