textarea.val()发送未编辑的原始值

时间:2014-10-05 15:49:24

标签: javascript jquery textarea

我的 MVC 项目中有 textarea

<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 个答案:

答案 0 :(得分:1)

您的页面上很可能有多个,要么使id属性唯一,要么在jQuery中定位索引。