【发布时间】:2020-07-24 12:33:41
【问题描述】:
我有一个由 Blazor <InputText> 组件生成的 HTML <input> 元素。
我正在使用 JavaScript 库来检测用户何时扫描条形码。当此事件发生时,我将扫描条形码的值设置到 <input> 元素中。
我想在 C# 中立即意识到这种值的变化。通常我会使用@bind-event:oninput 来确保当它发生变化时我立即拥有当前值,但是当通过代码设置 HTML 输入的值时不会触发此事件。
有没有办法通过 JavaScript 为 HTML 输入赋值,然后让 C# 立即知道更改并更新 InputText 控件绑定到的 C# 对象的属性?
【问题讨论】:
-
您能解释一下为什么要通过 JS 而不是 C# 来设置值吗?
-
我正在使用 JS 库来扫描条形码。我找到了解决我的问题的方法,但它非常hacky(幸运的是,这只是一个概念证明)。看我的回答。
-
最简单的方法是在输入上设置值,然后使用
input.dispatchEvent(...)向其发送change或input事件 - 这样您就不必创建大量额外的代码
标签: javascript c# html blazor