Ckeditor jQuery发布数据问题

时间:2018-08-11 11:28:42

标签: javascript jquery asp.net-mvc ckeditor

我在Ckeditor和MVC中使用jquery遇到一个问题。

我的代码如下:

<textarea id="typingarea" placeholder="select language before entering question" class="textarea" style="height: 150px"></textarea>
<script type="text/javascript">
   CKEDITOR.replace('typingarea');
</script>

我正在尝试使用jquery在提交按钮上发布数据

$('#btnSaveQuestion').click(function() {
    var QuestCont = CKEDITOR.instances['typingarea'].getData();
    alert(QuestCont)
    if ($(this).text() != "Update Question") {

        var postData = {

            "QuestionCategoryID": $("#ddlQuestionCategory").val(),
            "QuestionSubCategoryID": $("#ddlQuestionSubCategory").val(),
            "QuestionLanguageID": $("#ddlQuestionLanguageID").val(),
            "QuestionTypeID": $("#ddlQuestionType").val(),
            "QuestionName": $("#txtQuestionName").val(),
            "QuestionTags": $("#tags").val(),
            "QuestionContent": QuestCont

        };
    }
});

我能够从textarea读取数据,作为显示确切值的警报部分。但是无法传递带有“ QuestionContent”的数据。传递空值时,post部分正在工作。模型零件中没有其他问题。

ckeditor文本区域中的样本数据

<p>Hi im here</p>

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

您可以将编辑器内容复制到主文本区域中

var QuestCont = CKEDITOR.instances[$('#typingarea')].getData();
$('#typingarea').val(QuestCont);

然后将textarea值用作常规输入

var postData = {
                "QuestionCategoryID": $("#ddlQuestionCategory").val(),
                "QuestionSubCategoryID": $("#ddlQuestionSubCategory").val(),
                "QuestionLanguageID": $("#ddlQuestionLanguageID").val(),
                "QuestionTypeID": $("#ddlQuestionType").val(),
                "QuestionName": $("#txtQuestionName").val(),
                "QuestionTags": $("#tags").val(),
                "QuestionContent":$("#typingarea").val() 

            };

我将编辑如下代码:

$('#btnSaveQuestion').click(function () {  $("#typingarea").val(CKEDITOR.instances[$(this).attr("id")].getData());

        if ($(this).text() != "Update Question") {
            var postData = {
                "QuestionCategoryID": $("#ddlQuestionCategory").val(),
                "QuestionSubCategoryID": $("#ddlQuestionSubCategory").val(),
                "QuestionLanguageID": $("#ddlQuestionLanguageID").val(),
                "QuestionTypeID": $("#ddlQuestionType").val(),
                "QuestionName": $("#txtQuestionName").val(),
                "QuestionTags": $("#tags").val(),
                "QuestionContent":$("#typingarea").val() 

            };
 <textarea id="typingarea" placeholder="select language before entering question" class="myckeditor textarea" style="height: 150px"></textarea>

我希望这会有所帮助。

答案 1 :(得分:0)

您可以通过ajax进行以下操作:

Veiw

  r.table("orgs").filter(function(org) {
  return r.expr(["ID1" ,"ID2"]).contains(org('id'))
  })

控制器

<script>
    $('#btnSaveQuestion').click(function () {
        var QuestCont = CKEDITOR.instances['typingarea'].getData();
        var postData = {

            "QuestionCategoryID": $("#ddlQuestionCategory").val(),
            "QuestionSubCategoryID": $("#ddlQuestionSubCategory").val(),
            "QuestionLanguageID": $("#ddlQuestionLanguageID").val(),
            "QuestionTypeID": $("#ddlQuestionType").val(),
            "QuestionName": $("#txtQuestionName").val(),
            "QuestionTags": $("#tags").val(),
            "QuestionContent": QuestCont

        };

        if ($(this).text() != "Update Question") {
            $.ajax({
                url: yourUrl,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                type: "POST",
                data: JSON.stringify(postData),
                success: function () { alert('Success'); },
                error: function () { alert('Error'); }
            });

        }
    });
</script>

[HttpPost] public ActionResult testAction(Question postData) { // Do somethings } 是在Question中使用它所需的类。

答案 2 :(得分:0)

对不起,我在此部分输入了false。我编辑了。

$('#btnSaveQuestion').click(function () {  $("#typingarea").val(CKEDITOR.instances[
$("#typingarea").attr("id")].getData());

        if ($(this).text() != "Update Question") {
            var postData = {
                "QuestionCategoryID": $("#ddlQuestionCategory").val(),
                "QuestionSubCategoryID": $("#ddlQuestionSubCategory").val(),
                "QuestionLanguageID": $("#ddlQuestionLanguageID").val(),
                "QuestionTypeID": $("#ddlQuestionType").val(),
                "QuestionName": $("#txtQuestionName").val(),
                "QuestionTags": $("#tags").val(),
                "QuestionContent":$("#typingarea").val() 

            };
 <textarea id="typingarea" placeholder="select language before entering question" class="myckeditor textarea" style="height: 150px"></textarea>

如果无效,请使用以下代码:  

$('#btnSaveQuestion').click(function () {  $("#typingarea").val(CKEDITOR.instances[
'typingarea'].getData());

        if ($(this).text() != "Update Question") {
            var postData = {
                "QuestionCategoryID": $("#ddlQuestionCategory").val(),
                "QuestionSubCategoryID": $("#ddlQuestionSubCategory").val(),
                "QuestionLanguageID": $("#ddlQuestionLanguageID").val(),
                "QuestionTypeID": $("#ddlQuestionType").val(),
                "QuestionName": $("#txtQuestionName").val(),
                "QuestionTags": $("#tags").val(),
                "QuestionContent":$("#typingarea").val() 

            };
 <textarea id="typingarea" placeholder="select language before entering question" class="myckeditor textarea" style="height: 150px"></textarea>