Как вы можете прочитать текущее значение ввода в методе onkeypress в Blazor? - PullRequest
0 голосов
/ 04 октября 2018

У меня есть:

<input onkeypress="@Foo" />

и:

@functions
{
    void Foo(UIKeyboardEventArgs e)
    {

    }
}

Как передать или иным образом получить значение ввода в методе обработчика?

Ответы [ 4 ]

0 голосов
/ 11 июня 2019

Для простоты вы можете использовать этот код:

<input bind-value-oninput="@stringValue"/>

@functions {
string stringValue;
}
0 голосов
/ 02 апреля 2019

Вместо этого вы можете использовать событие oninput.Это событие вызывается каждый раз, когда изменяется значение элемента Input.Он принимает один параметр, который является UIChangeEventArgs, который содержит свойство Value с текущим значением Input-elements.Например,

<input type="text" oninput="@((ui) => { Foo((string)ui.Value);})"/>

@function {
    void Foo(string s)
    {
        //do stuff
    }
}
0 голосов
/ 27 апреля 2019

К сожалению, вам нужно событие oninput для обновления связанной переменной.

@value
<input type="text" bind="@value" oninput="@((ui) => { value=(string)ui.Value);})" />

@functions {
string value;
}
0 голосов
/ 04 октября 2018

«События KeyboardEvent просто указывают, какое взаимодействие пользователь имел с клавишей на клавиатуре на низком уровне».Чтобы получить доступ к вводу текста, вы должны использовать вместо него событие ввода или изменить событие.В Blazor прямо сейчас входное событие переносится событием change;то есть ваш код может получить доступ к новым значениям только после того, как элемент ввода потерял фокус.Однако вы должны определить свойство, которое привязано к элементу ввода и может быть доступно в вашем коде для извлечения:

protected string MyInput {get; set;}

<input type="text" bind="@MyInput" /> 

Приведенная выше привязка внутренне основана на событии изменения, а невходное событие (опять же, сейчас это невозможно в Blazor)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...