javascript - 自适应卡在提交时清除输入

标签 javascript node.js botframework microsoft-teams adaptive-cards

我从 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/

相关文章:

javascript - Firebase 无法从数据库 "db.collection is not a function"检索数据

javascript - JavaScript 引擎中的功能或安全漏洞

javascript - 动态删除 angular.module()

php - Node.js API 与 express 和 mysql - 仅在设置时应用搜索参数

node.js - 查找具有与两个(或多个)属性均匹配的子文档的文档

javascript - 如何正确地将 javascript 与 razor 语法结合起来

node.js - 使用 Mongoose 将元素添加到 MongoDB 中的数组

c# - QnA Maker - 无法以编程方式更新知识库

c# - 你如何在消息事件异步中检测事件对话框

c# - 当用户提交字段名称作为值时,FormFlow 禁用字段之间的切换