- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Blockquote
我有一个带有多个瀑布对话框的聊天机器人,其中一个使用自适应卡来显示获取输入的表单,它是使用 SDK V4 模板在 C# 中使用 MS Bot 框架开发的, channel 是 WebChannel,因此 HTML 是在后端用于机器人工作
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Web Chat: Full-featured bundle with ES5 polyfills</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--
For demonstration purposes, we are using the development branch of Web Chat at "/master/webchat.js".
When you are using Web Chat for production, you should use the latest stable release at "/latest/webchat.js",
or lock down on a specific version with the following format: "/4.1.0/webchat.js".
-->
<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat-es5.js"></script>
<style>
html, body {
height: 100%
}
body {
margin: 0
}
#webchat {
height: 100%;
width: 100%;
}
</style>
</head>
<body>
<div id="webchat" role="main">
</div>
<script>
const token = 's7W';
const styleOptions = {
botAvatarImage: '',
botAvatarInitials: 'BF',
userAvatarImage: '',
userAvatarInitials: 'WC',
bubbleBackground: 'rgba(0, 0, 255, .1)',
bubbleFromUserBackground: 'rgba(0, 255, 0, .1)'
};
var d = new Date();
var tzoffset = d.getTimezoneOffset();
const store = window.WebChat.createStore(
{},
function (_ref) {
const dispatch = _ref.dispatch;
return function (next) {
return function (action) {
if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'webchat/join',
value: tzoffset.toString()
}
});
}
return next(action);
};
};
});
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({ token: token }),
styleOptions: styleOptions,
store: store,
webSpeechPonyfillFactory: window.WebChat.createBrowserWebSpeechPonyfillFactory()
}, document.getElementById('webchat'));
document.querySelector('#webchat > *').focus();
</script>
</body>
</html>
在浏览器或网络 channel 中。
我的查询是:
我想在自适应卡中保留条件,例如:
我认为这必须通过使用 JavaScript 来完成,JavaScript 应该嵌入到背面的 HTML 页面中,但问题是我不知道如何实现?因为我是 javascript 的新手。
请通过分步方式或指导方式提供详细信息来帮助我解决查询或问题,因为我对 es5 bundle 的 javascript 和编码内容非常陌生。
我已附上当前与 ChatBot 相关的 HTML 文件以供引用,其中我在 HTML 中使用了几行脚本,或者在网络的帮助下使用了一些其他内容,以及我之前使用 es5 bundle 在 ChatBot 上提出的一些问题。
为了清楚起见更新了查询,2019 年 10 月 29 日:
我有一张采用以下容器设计的自适应卡:
我的查询如下:
如果我选择 2 或两者作为下拉列表中的选项作为容器 3 的一部分,则仅应显示容器 4。如果我选择 1,那么容器 4 应该被禁用或隐藏。这可以通过 JavaScript 或 C# 代码或任何其他设置来实现吗?如果是,那么如何,请尽可能详细地解释,因为我对编码非常陌生?
在自适应卡中提交数据时,我们是否可以进行强制值验证,即根据我上面修改的解释,如果我单击提交而不输入容器 1 中提供的文本输入,我应该会弹出一个窗口或未提供强制值的任何可能的错误消息?这是否可以通过自适应卡中的一些 JavaScript 或 C# 来实现,如果可以,请尽可能详细地逐步解释,因为我对编码非常陌生?
文本输入之一是电子邮件,如何对电子邮件输入进行验证,其中用户可以提供用分号 (;) 分隔的多封电子邮件,但值应采用正确的电子邮件格式,例如 john.doe@gy.com。我们如何在自适应卡中提供这种验证?
最佳答案
使用自适应卡的内置功能在客户端无法实现您所要求的任何功能。如果您不想使用自己的自适应卡渲染器构建自己的 Direct Line 客户端(这将非常困难),那么您要么必须对解决方法感到满意,要么重新考虑您的设计规范。您实际上并没有提供相关卡片的草稿,无论是 JSON 还是屏幕截图,所以我有点盲目工作。
If I select 2 or Both as options in drop down as part of Container 3 then only Container 4 should be displayed. If I select 1 then container 4 should be disabled or hidden. Is this achievable either through JavaScript or C# code or any other settings?
这里的传统解决方案是仅使用多张卡。等到用户从“容器 3”中选择一个选项并将该信息发送给机器人,然后机器人就可以根据用户的选择发送下一张卡片。
或者,您可以去掉容器 3,并根据用户填写的卡片部分来推断用户的选择。您也许可以将容器 4 放入 ShowCard action 中表明它是可选的。
Can we have mandatory values validation while submitting the data in the Adaptive card i.e. as per my above modified explanation if i click on submit without entering the text inputs provided in the container 1 i should be getting a pop up or any kind of error message possible that mandatory values are not provided?
. . .
One of the text inputs is email how to have validations for email input where user can provide multiple emails with semicolon(;) separated but the value should be in proper email format like john.doe@gy.com. How can we provide this kind of validation in adaptive cards?
同样,除非您构建自己的客户端,否则这在客户端是不可能的,尽管这可以在机器人端实现。当您的机器人从自适应卡获取用户的响应时,机器人可以验证它,然后向用户发送一条消息,解释出了什么问题并要求他们重试。 Eventually there will be packages to help you with this ,同时您可以查看 this DCR获取您可以做什么的示例。您可能还有兴趣阅读my latest blog post了解更多信息。
关于javascript - 如何在使用 C# 中的 Microsoft Bot Framework SDK V4 开发的 ChatBot 中添加条件 w.r.t 自适应卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58594750/
我正在努力处理查询的 WHERE 部分。查询本身包含一个基于两个表中都存在的 ID 的 LEFT JOIN。但是,我要求 where 语句仅返回其中一列中存在的最大单个结果。目前我返回连接中的所有值,
我有这个代码来改变文件系统的大小。问题是,即使满足 if 条件,它也不会进入 if 条件,而我根本没有检查 if 条件。它直接进入 else 条件。 运行代码后的结果 post-install-ray
假设我有一个包含 2 列的 Excel 表格:单元格 A1 到 A10 中的日期和 B1 到 B10 中的值。 我想对五月日期的所有值求和。我有3种可能性: {=SUM((MONTH(A1:A10)=
伪代码: SELECT * FROM 'table' WHERE ('date' row.date 或 ,我们在Stack Overflow上找到一个类似的问题: https://stackove
我有下面这行代码做一个简单的查询 if ($this->fulfilled) $criteria->addCondition('fulfilled ' . (($this->fulfilled
如果在数据库中找到用户输入的键,我将尝试显示“表”中的数据。目前我已将其设置为让数据库检查 key 是否存在,如下所示: //Select all from table if a key entry
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 5 年前。 Improve th
在MYSQL中可以吗 一共有三个表 任务(task_id、task_status、...) tasks_assigned_to(ta_id、task_id、user_id) task_suggeste
我想先根据用户的状态然后根据用户名来排序我的 sql 请求。该状态由 user_type 列设置: 1=活跃,2=不活跃,3=创始人。 我会使用此请求来执行此操作,但它不起作用,因为我想在“活跃”成员
下面两个函数中最专业的代码风格是什么? 如果函数变得更复杂和更大,例如有 20 个检查怎么办? 注意:每次检查后我都需要做一些事情,所以我不能将所有内容连接到一个 if 语句中,例如: if (veh
我在 C# 项目中使用 EntityFramework 6.1.3 和 SQL Server。我有两个查询,基本上应该执行相同的操作。 1. Exams.GroupBy(x=>x.SubjectID)
我试图在 case when 语句中放入两个条件,但我在 postgresql 中遇到语法错误 case when condition 1 and condition 2 then X else Y
我正在构建一个连接多个表的查询,一个表 prodRecipe 将包含某些行的数据,但不是全部,但是 tmp_inv1 将包含所有行的计数信息。问题是,tmp_inv1.count 取决于某个项目是否在
我有一个涉及 couples of rows which have a less-than-2-hours time-difference 的查询(~0.08333 天): SELECT mt1.*,
我有一个包含许多这样的 OR 条件的代码(工作正常)来检查其中一个值是否为空,然后我们抛出一条错误消息(所有这些都必须填写) } elsif ( !$params{'account'}
我有一个名为 spGetOrders 的存储过程,它接受一些参数:@startdate 和 @enddate。这将查询“订单”表。表中的一列称为“ClosedDate”。如果订单尚未关闭,则此列将保留
在代码中,注释部分是我需要解决的问题...有没有办法在 LINQ 中编写这样的查询?我需要这个,因为我需要根据状态进行排序。 var result = ( from contact in d
我正在尝试创建一个允许省略参数的存储过程,但如果提供了参数,则进行 AND 操作: CREATE PROCEDURE MyProcedure @LastName Varchar(30)
我正在寻找一种方法来过滤我的主机文件中的新 IP 地址。我创建了一个脚本,每次我用来自矩阵企业管理器的数据调用它时都会更新我的主机文件。它工作正常。但是我必须找到一个解决方案,只允许更新 10.XX.
所以我正在做一种 slider ,当它完全向下时隐藏向下按钮,反之亦然,当向上按钮隐藏时,我遇到了问题。 var amount = $('slide').attr('number'); $('span
我是一名优秀的程序员,十分优秀!