问题描述
嗨,我正在使用网页中的Adaptive card SDK,并使用了这样的样本卡:
var card = {
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json","type": "AdaptiveCard","version": "1.0","body": [
{
"type": "TextBlock","text": "Present a form and submit it back to the originator"
},{
"type": "Input.Text","id": "firstName","placeholder": "What is your first name?"
},"id": "lastName","placeholder": "What is your last name?"
}
],"actions": [
{
"type": "Action.Submit","title": "Action.Submit"
}
]};
并使用通常的标题进行渲染。我想将输入与提交一起返回,所以我尝试了
// Set the adaptive card's event handlers. onExecuteAction is invoked
// whenever an action is clicked in the card
adaptiveCard.onExecuteAction = function (action) { console.log(action.toJSON()) }
这给了我:
Object title: "Action.Submit" type: "Action.Submit" __proto__: Object
如何获取提交操作上输入字段的值?
TIA提供任何评论,建议和答案
解决方法
您可以像下面这样使用 action对象的data
属性:
adaptiveCard.onExecuteAction = function (action) {
alert(`Hello ${action.data.firstName} ${action.data.lastName}`);
}
这里是完整的jsfiddle。
动作对象上还有许多其他有趣的属性,但是我没有找到好的文档。 但是,自适应卡片可视器的source code包含一些用法示例。