元素。谢谢,javascript"/>

首页 > 解决方案 > 如何使用js模拟输入那些

元素。谢谢

问题描述

<div contenteditable="true" style="width: 509px;" id="test"></div>

document.getElementById("test").value=1231
document.getElementById("test").innerText=1231
document.getElementById("test").innerHTML=1231

当我点击提交按钮时,上述方法均无效。

我想知道我是否必须触发事件来保存值

但我不知道如何创建事件

以下方法适用于输入事件,但不适用于

<input type="text" id="test2">

window.inputValue(document.getElementById("test2"),"simulation_string")

window.inputValue = function (dom, st) {
    var evt = new InputEvent('input', {
        inputType: 'insertText',
        data: st,
        dataTransfer: null,
        isComposing: false
    });
    dom.value = st;
    dom.dispatchEvent(evt);
}

标签: javascript

解决方案


首先,您的代码中有一个错字,因为您没有为style属性添加右双引号。

接下来,一个div元素没有value属性,当您想在其中设置内容时,该内容必须是一个字符串。

此外,当将元素的值设置为非 HTML 字符串时,请使用.textContent.

最后,您暗示您将提交仅适用于form字段的数据。Adiv不是表单字段,因此您必须将 的内容复制div到另一个元素中,该元素将与表单的其余部分一起提交其数据。或者,您可以textarea首先使用 a 而不是 a div

document.getElementById("test").textContent = "1231";

// Copy the div content into the hidden form field so that it will transmit
document.getElementById("divData").value = document.getElementById("test").textContent;

console.log(document.getElementById("divData").value);
<div contenteditable="true" style="width: 509px;" id="test"></div>
<input type="hidden" id="divData">


推荐阅读