我正在开发谷歌日历中的 chrome 扩展。 session 的描述通过 jquery 更新,如下所示,
<div class="ui-sch">
<textarea id=":24" name=":24" class="textinput" style="overflow: hidden; resize: vertical;" rows="3" aria-labelledby=":13.descript-label">
</textarea>
</div>
var el= document.getElementsByClassName("textinput");
for(i=0; i < el.length; i++)
{
if(el[i].type == "textarea")
{
el[i].value="sample description";
}
}
内容按预期更新到文本区域。但是当我们提交表单时,没有提交描述。就像我们在更新内容后手动按下回车一样,提交来自 javascript 的更新值。
我怀疑,描述框中的数据更改绑定(bind)到另一个变量。如何将desc中的数据变化更新到表单提交?
更新: 模拟步骤
- 打开 calender.google.com
- 点击创建 session 粘贴上面的内容
- 控制台中的 javascript。 (观察描述字段的值)
现在点击保存 (打开 session 后 session 描述不会被保存)
现在创建一个 session 并按照上述步骤 1-3 进行操作。
- 单击描述框并按回车键或任何其他字符。
- 保存 session 。 (描述保存到 session )
最佳答案
在您的示例页面中,Google API 似乎仅在监听 change
事件时才识别更改。你可以模拟它
el[i].dispatchEvent(new Event('change'));
关于javascript - 更新 textarea 不会以表单形式提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43692346/