<div class="max-w-sm p-6 bg-white border flex items-center flex-col border-gray-200 rounded-lg shadow dark:bg-gray-800 dark:border-gray-700">
<p id="helper-text-explanation" class="…">@Label</p>
<div class="…">
@for (var i = 0; i < Code.Length; i++)
{
<div>
<label for="@($"code-{i + 1}")" class="sr-only">Code @(i + 1)</label>
<input @bind="@Code[i]" type="text" maxlength="1" data-focus-input-init data-focus-input-prev="@($"code-{i}")" data-focus-input-next="@($"code-{i + 2}")" id="@($"code-{i + 1}")" class="…" required/>
</div>
}
</div>
</div>
<script>
…
</script>
@code
{
[Parameter] public string Label { get; set; }
[Parameter] public char?[] Code { get; set; }
[Parameter] public EventCallback<char?[]> CodeChanged { get; set; }
private async Task HandleCodeChanged()
{
await CodeChanged.InvokeAsync(Code);
}
}
<div class="max-w-sm p-6 bg-white border flex items-center flex-col border-gray-200 rounded-lg shadow dark:bg-gray-800 dark:border-gray-700">
<p id="helper-text-explanation" class="…">@Label</p>
<div class="…">
@for (var i = 0; i < Code.Length; i++)
{
<div>
<label for="@($"code-{i + 1}")" class="sr-only">Code @(i + 1)</label>
<input @bind="@Code[i]" type="text" maxlength="1" data-focus-input-init data-focus-input-prev="@($"code-{i}")" data-focus-input-next="@($"code-{i + 2}")" id="@($"code-{i + 1}")" class="…" required/>
</div>
}
</div>
</div>
<script>
…
</script>
@code
{
[Parameter] public string Label { get; set; }
[Parameter] public char?[] Code { get; set; }
[Parameter] public EventCallback<char?[]> CodeChanged { get; set; }
private async Task HandleCodeChanged()
{
await CodeChanged.InvokeAsync(Code);
}
}