我从 Microsoft Teams 机器人发送一张包含输入字段和提交
操作的自适应卡
。当用户单击“提交”时,我收到输入的数据,但表单字段被清除。
这是为什么呢?我究竟做错了什么?这种行为非常烦人,因为我无法验证输入并要求用户更正它。
这种情况发生在桌面 Teams 应用、浏览器中的 Teams、网页中的 Teams 网络聊天和机器人模拟器中。在模拟器中,字段失去焦点就足够了。
如果重要的话我使用nodejs。
最佳答案
你没有做错任何事。这就是自适应卡在 Teams 中的工作方式,也许是一种表示数据已成功发送到机器人的方式。不过,您可能可以采取一些措施来解决您的问题。
自适应卡输入字段有一个 value
属性,允许您指定字段的初始值。如果您向用户发送卡片并填充输入字段的 value
属性,则这些字段不会为空。这意味着您可以发送此类卡片作为更新而不是新事件,并且该卡片看起来像是已就地修改,因为 Teams 支持更新事件。如果更新使用相同的卡但使用用户输入的值,那么卡看起来会保持不变,这将解决值消失的问题。
有一个关于动态添加输入字段到自适应卡的问题,以及 answer包含保留输入字段值的示例代码:
var inputId = `text${i}`; body.push({ type: "Input.Text", id: inputId, value: cardData[inputId] // This is where the value is preserved });
如果您希望使用可以安装在 NuGet 包中的预构建代码来简化整个过程,请随时在 GitHub 上表达您对这些想法的支持:
Bot.Builder.Community.AdaptiveCards
AdaptiveCard Prompt
关于javascript - 自适应卡在提交时清除输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57870044/