Спасибо enet и Питеру Моррису за помощь в этом.
После многих попыток, похоже, единственный способ сделать это с javascript
. js
window.preventDefaultOnEnter = function (element, remove = false) {
var preventDefaultOnEnterFunction = function (e) {
if (e.keyCode === 13 || e.key === "Enter") {
e.preventDefault()
return false
}
}
if (remove) {
element.removeEventListener('keydown', preventDefaultOnEnterFunction, false);
}
else {
element.addEventListener('keydown', preventDefaultOnEnterFunction, false);
}
}
.razor
<input @ref="InputRef" />
@code {
[Inject]
private IJSRuntime JSRuntime { get; set; }
public ElementReference InputRef { get; set; }
protected override async Task OnInitializedAsync()
{
await base.OnInitializedAsync();
if (PreventDefaultOnEnter)
{
await JSRuntime.InvokeVoidAsync("preventDefaultOnEnter", InputRef);
}
}
public override async void Dispose()
{
base.Dispose();
if (PreventDefaultOnEnter)
{
await JSRuntime.InvokeVoidAsync("preventDefaultOnEnter", InputRef, true);
}
}
}