PHP表单中Summernote编辑器无法获取提交数据的求助
解决PHP表单中Summernote文本编辑器无法提交数据的问题
你的代码存在几个关键问题,导致无法获取Summernote的输入数据,以下是修复方案:
问题点及修复步骤
textarea内容赋值错误:textarea标签不支持通过
value属性设置初始内容,需将内容直接放在标签内部:
原代码:<textarea id="summernote" name ="summernote" rows="10" value="<?php echo $contenu_article; ?>"></textarea>修正为:
<textarea id="summernote" name="summernote" rows="10"><?php echo $contenu_article; ?></textarea>postForm函数作用域错误:原函数定义在
$(document).ready()内部,属于局部函数,表单的onsubmit无法调用。需将函数移到全局作用域,同时补充表单提交的返回逻辑:
原代码:$(document).ready(function(){ var postForm = function() { var content = $('textarea[name="summmernote"]').html($('#summernote').code()); } });修正为:
function postForm() { $('textarea[name="summernote"]').val($('#summernote').summernote('code')); return true; }拼写错误:原代码中
name="summmernote"多了一个字母m,需改为name="summernote";同时注意Summernote获取内容的方法是summernote('code'),且要用val()而非html()设置textarea的值。表单标签语法错误:
action属性与method属性之间缺少空格,修正为:<form action="<?php echo $action; ?>" method="post" onsubmit="return postForm()">
修正后的完整代码
<form action="<?php echo $action; ?>" method="post" onsubmit="return postForm()"> <div class="col-lg-6 col-md-2"> <div class="form-group"> <label>Date</label> <input type="text" name="date_pub" class="form-control" id="date_pub" size="10" value="<?php echo $date_article ?>" placeholder="Date de la Publication"/> </div> <div class="form-group"> <label>Titre Publication</label> <input class="form-control" name="titre_pub" type="text" size="25" value="<?php echo $titre_article ?>" placeholder="Titre de la Publication"/> </div> <div class="control-group"> <label class="control-label" for="summernote">Article</label> <div class="controls"> <textarea id="summernote" name="summernote" rows="10"><?php echo $contenu_article; ?></textarea> </div> </div> <div class="control-group"> <br> <input type="submit" class="btn btn-primary" value="<?php echo $lib_btn ?>"> </div> </div> </form> <script> $( function() { $( "#date_pub" ).datepicker( $.datepicker.regional[ "fr" ] ); } ); // Summernote $(function () { $('#summernote').summernote({ height: 600, // set editor height focus: true // set focus to editable area after initializing summernote }); }); </script> <script type="text/javascript"> function postForm() { // 将Summernote的内容同步到textarea $('textarea[name="summernote"]').val($('#summernote').summernote('code')); // 返回true允许表单提交 return true; } </script>
内容的提问来源于stack exchange,提问作者Taz28
相关产品推荐
相关产品推荐

