2014-10-05 27 views
0

我有這個textarea的MVC項目textarea.val()發送原始值不能編輯

<textarea id="edit-content" name="content" placeholder="Text content goes here">@Model.content</textarea> 

,但是當我嘗試發送給的Json呼叫這樣

<script type="text/javascript"> 
    function save() { 
     var $title = $('#edit-title'), 
      $content = $('#edit-content'), 
      $messageLoading = $('#message-edit-loading'), 
      $messageError = $('#message-edit-error'), 
      $id = $('#edit-id'); 

     updateComment($id.val(), $title.val(), $content.val()) 
      .done(function (data) { 
       if (data.IsValid()) { 
        $messageError.html(''); 
        $messageError.removeClass('hidden'); 
        $messageLoading.removeClass('hidden'); 
        $messageLoading.html('The text is saved'); 
       } else { 
        $messageError.removeClass('hidden'); 
        $messageError.html(data.Message); 
       } 
      }) 
      .fail(function (xhr, message) { 
       $messageError.removeClass('hidden'); 
       $messageError.html('Registration failed: ' + message); 
      }) 
    }; 
</script> 

我得到原始值@ Model.content而不是新值。


編輯

我的script.js代碼

function updateComment(id, title, content) { 
    return $.get("/Chapter/GetJSON_Update", 
     { 
      id: id, 
      title: title, 
      content: content 
     }, 
     'json'); 
}; 

整個代碼從我Edit.cshtml

@model Academia_Unitate.Models.Chapter 
@{ 
    ViewBag.Title = "Edit " + Model.title; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

@Html.Partial("~/Views/Shared/_TinyMCE.cshtml") 

<div id="edit"> 
    <h1> 
     Edit @Model.type.name 
    </h1> 

    <div class="" role="form"> 
     <div class="form-group"> 
      <label class="sr-only" for="title">Title</label> 
      <input class="form-control" type="text" id="edit-title" placeholder="Enter a title" value="@Model.title" required="required" /> 
     </div> 

     <div class="form-group"> 
      <label class="sr-only" for="content">Content</label> 
      <textarea id="edit-content" name="content" placeholder="Text content goes here">@Model.content</textarea> 
     </div> 

     <button type="submit" class="btn btn-success" id="save-btn" onclick="save()"><span class="glyphicon glyphicon-ok"></span> Save</button> 

     <span id="message-edit-loading" class="alert hidden"></span> 
     <span id="message-edit-error" class="alert alert-danger hidden"></span> 
    </div> 
</div> 

<input type="hidden" value="@Model.id" id="edit-id"/> 

<script type="text/javascript"> 
    function save() { 
     var $title = $('#edit-title'), 
      $content = $('#edit-content'), 
      $messageLoading = $('#message-edit-loading'), 
      $messageError = $('#message-edit-error'), 
      $id = $('#edit-id'); 

     updateComment($id.val(), $title.val(), $content.val()) 
      .done(function (data) { 
       if (data.IsValid()) { 
        $messageError.html(''); 
        $messageError.removeClass('hidden'); 
        $messageLoading.removeClass('hidden'); 
        $messageLoading.html('The text is saved'); 
       } else { 
        $messageError.removeClass('hidden'); 
        $messageError.html(data.Message); 
       } 
      }) 
      .fail(function (xhr, message) { 
       $messageError.removeClass('hidden'); 
       $messageError.html('Registration failed: ' + message); 
      }) 
    }; 
</script> 
+1

updateComment有什麼作用?我假設你的意思是它執行一個AJAX調用,但代碼是什麼樣的? – Guffa 2014-10-05 15:56:51

+0

@ Guffa:添加了** Json **調用代碼 – 2014-10-05 16:23:50

+0

我沒有看到任何原因可以將舊值發送到服務器,它在該階段根本不應該存在。您必須調試代碼,在不同階段寫出值,和/或查看網絡流量,以準確找出原始值進入流程的位置。 – Guffa 2014-10-05 16:49:36

回答

1

你很可能有不止一個在你的頁面上,要麼使他們的id屬性唯一或目標在您的jQuery的索引。

+0

我檢查了代碼,並且沒有重複的編號,稱爲** edit-content ** – 2014-10-05 16:23:06

+1

發佈更多代碼,那麼您提供的內容是不夠的。換句話說,沒有什麼似乎是錯誤的。 – 2014-10-05 16:23:51

+0

這也是buging我的部分:-D一切似乎是正確的,但價值仍然是錯誤的 – 2014-10-05 16:28:19