@AdamWox chcę zrobić pole dla daty takie samo jak jest w Optimie (Ty pewnie wiesz jak to tam działa). Tzn. jak kliknę myszką to ma się zaznaczyć wybrany fragment daty a jak kliknę strzałką w lewo/w prawo to ma mi się zmienić pole daty. Dodatkowo u mnie jest opcja narzucenia jak ma się wyświetlać data RRRR-MM-DD / DD-MM-RRRR.
Musiałem ustawić @onkeydown:preventDefault="true" bo bez tego nie zaznaczał mi się fragment daty przy klikaniu strzałkami (tzn. pole się zaznaczało, ale zaznaczenie było niewidoczne dla użytkownika). Pojawił się jednak kolejny problem z tabulacją, która przestała działać gdy wspomniany parametrem jest ustawiony i chwilowo nie przychodzi mi do głowy żadne rozwiązanie :/
Na pewno muszę jeszcze poczytać o preventDefault oraz stopPropagation, bo ciągle nie jestem pewny jak to działa.
Mój input chwilowo wygląda tak:
<input
type="text"
@bind-value="@custom_date"
@bind-value:event="oninput"
@ref="ref_to_date"
@onclick="@(async () => await OnClick())"
@onfocus="@(async () => await OnFocus())"
@onkeydown="@(async e => await OnKeyDown(e))"
@onkeydown:preventDefault="true"
@onkeydown:stopPropagation="true"
@onfocusout="OnFocusOut"
onkeypress = "return (event.charCode !=8 && event.charCode ==0 || (event.charCode >= 48 && event.charCode <= 57) || event.charCode == 44 || event.charCode == 46 || event.charCode == 9)"
tabindex="1"
maxlength="10"
/>
W metodach OnClick, OnFocus jak rwnie OnKeyDown korzystam z funkcji do zaznaczania fragmentu tekstu (JS), tj.
function SelectPartOfText(reference, start_position, end_position) {
reference.setSelectionRange(start_position, end_position);
}