Reputation: 2187
In an early version of Blazor there was an IHtmlInputElement
interface with selectionStart
and selectionEnd
properties.
Can anyone explain how I can use these to get the selected text from a text input control in C#?
UPDATE Here's what I have so far.
@page "/selectedtext"
@inject IJSRuntime JsRuntime
<h3>TextSelection</h3>
<input type="text" placeholder="Type here" @ref="myTextInput"/>
<button class="btn btn-primary" @onclick="@(async () => await GetSelectionStart(myTextInput))"></button>
@code {
public ElementReference myTextInput { get; set; }
public async Task GetSelectionStart(ElementReference element)
{
int pos = await JsRuntime.InvokeAsync<int>("GetSelectedStart", element);
}
}
// myscript.js
{
getSelectedStart : function (element) {
return element.selectionStart;
}
}
Upvotes: 5
Views: 3991
Reputation: 2187
@page "/selectedtext"
@inject IJSRuntime JsRuntime
<h3>TextSelection</h3>
<input type="text" placeholder="Type here" @ref="myTextInput"/>
<button class="btn btn-primary" @onclick="@(async () => await GetSelectionStart(myTextInput))">Get Position</button>
@code {
public ElementReference myTextInput { get; set; }
public async Task GetSelectionStart(ElementReference element)
{
int pos = await JsRuntime.InvokeAsync<int>("getSelectedStart", element);
}
}
// myscript.js
window.getSelectedStart = (element) => {
return element.selectionStart;
}
Upvotes: 4