我有两个javascript函数,第一个从文本区域保存草稿,第二个是文本编辑器插件。如果我把它们加在一起,只会显示第二个,但它们可以单独工作 - 不幸的是,它们不在一起。我将把这两个函数放在下面,如果你看到这两个函数的修复,请告诉我。我可以在必要时显示外部插件JS,但它相当大。提前感谢您的协助!
要添加,两者都使用相同的jQuery版本。
#1:
$(function() {
setInterval(function (){
var body = $("#body").val();
var title = $("#title").val();
var forum = $("#forum_id").val();
DATA = "mid=" + <?php echo $mid ?> + "&body=" + body + "&title=" + title + "&forum=" + forum + "&draft_id=" + <?php echo $draft_id ?>;
if (body.length > 0)
{
$.ajax({
type: "POST",
url: "inc/save_draft.php",
data: DATA,
cache: false,
success: function(){
$("#timestamp").show().html("Saved as a draft!");
}
});
}
setTimeout(function(){
$("#timestamp").hide();
}, 500);// 15 seconds
}, 1000);// 1 minute
});
#2:
$(function() {
$("textarea").sceditor({
plugins: 'bbcode'
});
});
答案 0 :(得分:1)
此处的问题是,您的sceditor
插件会将textarea转换为可编辑的iframe,而$("#body").val()
将产生一个空字符串,因为在表单提交之前,编辑器不会填充其值。
您需要更新第一个插件,以便它不会抓取$('#body').val()
,而是$('#body').sceditor('instance').val()
。
Demo。尝试更改该textarea中的内容,然后使用两种不同的方法来检索更改的内容。只有后者才有效。