2017-11-12 1 views
1

zu buchen Ich habe eine Teilansicht in meinem asp.net-Kernprojekt und ich möchte alle input und select und editor Werte auf Controller mit AJAX. Ich kann alle input und select Tag an Controller, aber nicht CkEditor-Wert buchen.Wie den CKEDITOR-Wert zusammen mit anderen Eingaben über AJAX

Natürlich kann ich den CkEditor-Wert in jQuery abrufen, kann es aber nicht auswählen.

Teilansicht:

@model LibraryProject.Models.ViewModels.AddEditBookViewModel 

<form method="post" enctype="multipart/form-data"> 
    <div class="modal-body form-horizontal"> 
     <div class="row"> 

      <div class="form-group"> 
       <label asp-for="BookName" class="col-lg-2 col-sm-2 control-label"></label> 
       <div class="col-lg-6"> 
        <input asp-for="BookName" class="form-control" /> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label asp-for="BookDescription" class="col-lg-2 col-sm-2 control-label"></label> 
       <div class="col-lg-9"> 
        <textarea id="BookDescription" name="BookDescription" asp-for="BookDescription" class="form-control"></textarea> 
       </div> 

       <script type="text/javascript"> 
        CKEDITOR.replace('BookDescription'); 
       </script> 

      </div> 


      <div class="form-group"> 
       <label asp-for="BookGroupID" class="col-lg-2 col-sm-2 control-label"></label> 
       <div class="col-lg-6"> 
        <select asp-for="BookGroupID" asp-items="@Model.BookGroups" class="form-control"></select> 
       </div> 
      </div> 


      <div class="form-group"> 
       <label asp-for="AuthorID" class="col-lg-2 col-sm-2 control-label"></label> 
       <div class="col-lg-6"> 
        <select asp-for="AuthorID" asp-items="@Model.Authors" class="form-control"></select> 
       </div> 
      </div> 

      <div class="form-group"> 
       <label asp-for="BookPageCount" class="col-lg-2 col-sm-2 control-label"></label> 
       <div class="col-lg-6"> 
        <input asp-for="BookPageCount" class="form-control" /> 
       </div> 
      </div> 

      <input type="file" id="files" name="files" multiple /> 

     </div> 
    </div> 
    <div class="modal-footer"> 
     <input type="button" id="submitinfo" class="btn btn-success" value="Add Book" /> 
    </div> 
</form> 

und mein jQuery-Code:

<script> 
    $(document).on('click', '#submitinfo', function (evt) { 
     evt.preventDefault(); 
     var fileupload = $("#files").get(0); 
     var files = fileupload.files; 
     var data = new FormData(); 
     for (var i = 0; i < files.length; i++) { 
      data.append('files', files[i]); 
     } 

//In this line I can get editor value 
     var editorval = CKEDITOR.instances['BookDescription'].getData(); 

//***here i can post all input and select tag value but can`t post editor value along with other 
     $('input,select').each(function (x, y) { 
      data.append($(y).attr("name"), $(y).val()); 
     }); 


     $.ajax({ 
      type: "post", 
      url: '@Url.Action("AddBook", "Book")', 
      contentType: false, 
      processData: false, 
      data: data 
     }).done(function (res) { 
      if (res.status === "success") { 
       alert(res.message); 
      } else { 
       $.each(res.errors, function (a, b) { 
        alert(b); 
       }); 
      } 
     }).fail(function (xhr, b, error) { 
      alert(error); 
     }); 
    }); 
</script> 

Nun, wie kann ich Editor Wert zusammen mit anderen Posten, wo es mit 3 Sternen in der jQuery markiert Code?

Antwort

1

Sie können den Wert von CKEditor lesen und zu den Formulardaten hinzufügen.

$('input,select').each(function (x, y) { 
    data.append($(y).attr("name"), $(y).val()); 
}); 
var editorval = CKEDITOR.instances['BookDescription'].getData(); 
data.append('BookDescription',editorval); 
Verwandte Themen