Как изменить ввод при печати и заставить Blazor увидеть изменения - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть элемент ввода. Я добавил некоторую фильтрацию и изменение текста при наборе текста, используя события JavaScript keydown и keypress.

Например, когда ввод принимает символы верхнего регистра, когда вы нажимаете только «a» (без смещения , без ограничения прописных букв), вы получите «A».

Это работает, однако привязка входного значения не работает вообще. Я просто вызываю preventDefault() для события JS, и все, привязка нарушена.

Я пытался отправить событие самостоятельно. Я отправил только что созданные KeyboardEvent и CustomEvent с типом "change". Ничего не работает Я могу изменить входное значение в JS обработчике событий, я вижу изменения в браузере, но мой C# нет.

Как я могу заставить это работать? Нужно ли вызывать C# вручную, чтобы обновить привязку, или есть другой способ?

Код должен работать только на последних Chrome / Firefox браузерах, старые браузеры могут не поддерживаться.

1 Ответ

0 голосов
/ 19 апреля 2020

Почему бы вам не использовать код Blazor? У вас уценка:

<input type="text" @bind-value="MyParamenter" @bind-value:event="oninput" >

и в коде

private string myParameter;

private string MyParameter
{
    get => myParameter;
    set
    {
        myParameter = value.ToUpper();
    }
}
...