Blazor - 通过 java 脚本更新输入文本控件 - 应用程序看不到
Blazor - updating input text control by java script - app doesn't see that
在 blazor(服务器)应用程序中,我输入了文本。类似的东西:
<input id="SearchPoint" Class="form-control"
@bind="@searchPoint" @bind:event="onchange" />
要获取当前位置,我正在使用 js 并直接更新该控件:
document.getElementById("SearchPoint").value = pos.coords.latitude +
', ' + pos.coords.longitude
问题是,尽管屏幕上有一个新值,但应用程序仍然看不到新的更新值并使用前一个值,就像没有发生 js 更新一样。
触发事件“onchange”解决了问题(基于回答@andy-e How can I trigger an onchange event manually?)
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
document.getElementById("SearchPoint").dispatchEvent(evt);
}
else
document.getElementById("SearchPoint").fireEvent("onchange");
在 blazor(服务器)应用程序中,我输入了文本。类似的东西:
<input id="SearchPoint" Class="form-control"
@bind="@searchPoint" @bind:event="onchange" />
要获取当前位置,我正在使用 js 并直接更新该控件:
document.getElementById("SearchPoint").value = pos.coords.latitude +
', ' + pos.coords.longitude
问题是,尽管屏幕上有一个新值,但应用程序仍然看不到新的更新值并使用前一个值,就像没有发生 js 更新一样。
触发事件“onchange”解决了问题(基于回答@andy-e How can I trigger an onchange event manually?)
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
document.getElementById("SearchPoint").dispatchEvent(evt);
}
else
document.getElementById("SearchPoint").fireEvent("onchange");