|
@@ -50,6 +50,7 @@ function formEvent(element, data) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
async function inputText({ data, element, isEditable }) {
|
|
async function inputText({ data, element, isEditable }) {
|
|
|
|
+ element?.focus();
|
|
const elementKey = isEditable ? 'textContent' : 'value';
|
|
const elementKey = isEditable ? 'textContent' : 'value';
|
|
|
|
|
|
if (data.delay > 0 && !document.hidden) {
|
|
if (data.delay > 0 && !document.hidden) {
|
|
@@ -82,6 +83,8 @@ async function inputText({ data, element, isEditable }) {
|
|
element.dispatchEvent(
|
|
element.dispatchEvent(
|
|
new Event('change', { bubbles: true, cancelable: true })
|
|
new Event('change', { bubbles: true, cancelable: true })
|
|
);
|
|
);
|
|
|
|
+
|
|
|
|
+ element?.blur();
|
|
}
|
|
}
|
|
|
|
|
|
export default async function (element, data) {
|
|
export default async function (element, data) {
|
|
@@ -104,13 +107,17 @@ export default async function (element, data) {
|
|
}
|
|
}
|
|
|
|
|
|
if (data.type === 'checkbox' || data.type === 'radio') {
|
|
if (data.type === 'checkbox' || data.type === 'radio') {
|
|
|
|
+ element?.focus();
|
|
element.checked = data.selected;
|
|
element.checked = data.selected;
|
|
formEvent(element, { type: data.type, value: data.selected });
|
|
formEvent(element, { type: data.type, value: data.selected });
|
|
|
|
+ element?.blur();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
if (data.type === 'select') {
|
|
if (data.type === 'select') {
|
|
|
|
+ element?.focus();
|
|
element.value = data.value;
|
|
element.value = data.value;
|
|
|
|
+ element?.blur();
|
|
formEvent(element, data);
|
|
formEvent(element, data);
|
|
}
|
|
}
|
|
}
|
|
}
|