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);
}
解决方案
首先,您的代码中有一个错字,因为您没有为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">
推荐阅读
- mysql - MySQL为范围的每一天选择具有日期范围的行
- javascript - 当输入获得焦点时,滑动滑块方法'slickPrev'不会在引导模式内触发
- azure - 如何在失败时保持 Azure Serive Bus 消息队列处理?
- python - 将第二个轴添加到图形
- css - SVG 动画在错误的位置旋转
- ios - 如何从网络扩展中停用按需连接 VPN?
- c - 3D raycaster 渲染错误的墙壁距离
- pine-script - 如何使用 pine 脚本版本 4 添加多个移动平均线?
- c# - MVC 5、SignlaR 和石英中 Autofac 组件的生命周期范围
- c# - GetCustomAttributes 让我错误的属性