1

感谢您花时间阅读本文

我有一个表单,调用 JS 函数将 DIV 的 html 内容复制到隐藏的表单字段,以便我可以使用表单提交它。它在桌面 webkit 浏览器和 iPad 上的移动 safari 上运行良好。但是,当我以全屏模式运行应用程序(通过在主屏幕上保存快捷方式)时,这不起作用。

这是我的代码

JS函数:

function update_script_in()//copies scripts and submits the form
{
    $("#script_in").html($("#scriptContent").html());
    $('#ResiForm').submit();
}

表单提交:

<input type=submit value="Submit" onclick="update_script_in()">

谢谢你的帮助

4

1 回答 1

1

这已经很老了,但是在谷歌搜索为我解决同样的问题之后,我还没有找到解决方案。看起来像是 iPad 的一些奇怪行为(很容易重现,无法修复,至少我发现):目标输入字段确实发生了变化,但发布的值是原始值(???)

因此,以防万一解决方法对某人有用,而不是在表单提交时应用来自 contenteditable div 的更改,而是在 div 更改时应用更改(对于 contenteditable div 没有更改事件,所以实际上它是在 blur 事件上完成的):

<div id="editor_inline_core_body" class="inputbox editor-inline" contenteditable>[initial value here]</div>
<input type="hidden" id="jform_core_body" name="jform[core_body]" value="[ initial value here]" />
<script>
        jQuery('#editor_inline_core_body').blur(function() {
        var value = jQuery('#editor_inline_core_body').html();
        jQuery('#jform_core_body').val(value);
        return true;
    });
</script>

效率较低,但至少它有效。如果您想要更高的效率,您可以使用焦点事件来检查新旧值,但至少我认为这没什么大不了的,也不值得增加复杂性。

于 2015-02-02T13:08:46.610 回答