Div with contentEditable不会使用Javascript发布到表单中

时间:2015-12-16 09:44:52

标签: javascript php jquery html forms

Okai,所以我有这个div:

// DESCRIPTION AREA
$body_html .= "<div id='seq-desc-".$seq_id_d."' contenteditable='true' data-text='Det som skal skje...'>";
$body_html .= $seq_desc_d;
$body_html .= "</div>&nbsp;";

和此textarea:

$body_html .= "<textarea id='seq-desc-area-".$seq_id_d."' name='deta-".$seq_id_d."' style='display: none;'></textarea></td>";

在我的表单中,我使用以下代码激活我的Javascript代码:

"<form action='planner_seq_save.php' id='save-".$seq_id_d."' name='save-".$seq_id_d."' method='POST' onsubmit='return getContent".$seq_id_d."'>";

getContent的定义如下:

function getContent'.$seq_id_d.'(){
    document.getElementById("seq-desc-area-'.$seq_id_d.'").value = document.getElementById("seq-desc-'.$seq_id_d.'").innerHTML;
}

为什么我在使用POST时在数据库中获得空回报? 我使用$_POST['deta-(the id)']来获取帖子。

我还在标准按钮上使用此代码保存表单。这可能会 onsubmit 无法正常工作吗?

onclick='document.forms['save-".$seq_id_d."'].submit();'

现在试图找出问题是什么,我真的需要别人的意见。

更新

使用console.log()我在函数中没有返回。所以功能没有运行。

可以找到完整代码here

2 个答案:

答案 0 :(得分:1)

在触发submit方法时,似乎未触发submit()事件,因此未调用onsubmit处理程序。 See another question for more info

因此,您可以尝试删除onsubmit处理程序并触发getContent的{​​{1}}函数:

onclick

onclick='submitForm(id)'

答案 1 :(得分:0)

  • 将函数getContent-'.$seq_id_d.'()重命名为getContent_'.$seq_id_d.'()
  • 将函数document.getElementById("seq-desc-area-'.$seq_id_d.'").value中的textarea id更正为document.getElementById("seq-deta-area-'.$seq_id_d.'").value
  • 在onsubmit onsubmit='return getContent-".$seq_id_d."'onsubmit='return getContent_".$seq_id_d."()'
  • 中正确调用函数

假设这就是全部:)

完整代码

<?php
$seq_id_d = 1;
var_dump($_REQUEST);
?>
<div id='seq-desc-<?php echo $seq_id_d; ?>' contenteditable='true' data-text='Det som skal skje...'>werwerwqrewrqwer</div>
<form id='save-<?php echo $seq_id_d; ?>' name='save-<?php echo $seq_id_d; ?>' method='POST' onsubmit='return getContent_<?php echo $seq_id_d; ?>()'>
<textarea id='seq-deta-area-<?php echo $seq_id_d; ?>' name='deta-<?php echo $seq_id_d; ?>' style='display: none;'></textarea>
<input type="submit" value="ok">
</form>
<script>
function getContent_<?php echo $seq_id_d; ?>(){
document.getElementById("seq-deta-area-<?php echo $seq_id_d; ?>").value = document.getElementById("seq-desc-<?php echo $seq_id_d; ?>").innerHTML;
}
</script>