我有一個組件可以跟蹤輸入到文本區域中的單詞數。問題是單詞在寫第一個單詞后更新然后停止。為了讓它再次觸發事件,我必須單擊文本區域外并單擊回傳,然后再次輸入。奇怪的是,當我除錯和逐步完成字數更新時,沒有任何問題。
我只需要它在我打字時更新,就像我除錯時一樣。
我的 Blazor 組件:
<div class="row">
<textarea id="test" class="form-control" @bind="text" @onkeypress="WordsLeft"></textarea>
<p>Words left: @(MaxCount - CurrentWordCount)</p>
</div>
@code {
[Parameter]
public int MaxCount { get; set; }
[Parameter]
public string text { get; set; } = string.Empty;
public int CurrentWordCount;
public void WordsLeft()
{
CurrentWordCount = text.Split(' ').Length;
}
}
行為順序:打開頁面(剩余字數:500)-> 輸入一個字詞(剩余字數:499)-> 再輸入 2 個字(剩余字數為 499)-> 單擊文本區域外-> 單擊回傳文本區域 -> 輸入另一個詞(剩下的詞:496)
uj5u.com熱心網友回復:
這是您的代碼的作業版本:
@page "/Test1"
<div class="row">
<textarea id="test" class="form-control" @bind="text" @oninput="WordsLeft"></textarea>
<p>Words left: @(MaxCount - CurrentWordCount)</p>
</div>
@code {
public int MaxCount { get; set; } = 500;
public string Text { get; set; } = string.Empty;
public int CurrentWordCount;
public void WordsLeft(ChangeEventArgs e)
{
CurrentWordCount = e.Value.ToString().Length;
}
}
text只有在您退出控制元件時才會更新。在每次擊鍵時獲取實際輸入值的最簡單方法是通過ChangeEventArgs. 此外,通常最好使用該oninput事件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/328453.html
下一篇:Blazor組件事件不會觸發
