に、私はそこにいくつかのデータを持つdiv要素のリストを持っている:runEditリンク上のユーザーのクリックが、私はこれからの編集を行うとのAsp MVCのjQuery - 場所編集
<div style="border: 1px solid #dddddd;">
<div id="wrap">
<h3 id="cText">@Model.CommentText</h3>
<a id="runEdit" href="#" >Edit</a>
</div>
</div>
を:
e.preventDefault();
var txt = $('#cText').text();
$('#cText').remove();
$('#wrap').prepend('<textarea>' + txt + '</textarea>');
$('#wrap').append('<input type="submit" value="Ok" />');
$('#wrap').append('<input type="submit" value="Cancel" />');
問題があります私はここにjavascriptでこの2つのボタンを追加しました。しかし、私はこのボタンにいくつかのコントローラーアクションを付ける方法を知らないのですか?
ここでの問題は、5つのコメントを書く場合です。編集をクリックすると、5つの編集フォームが表示されます。
$('#editButton').live('click', function (e) {
e.preventDefault();
var container = $(this).closest('.commentWrap');
var itemId = container.attr('id');
var nestId = '#' + itemId;
var txt = $('#commentTextValue').text();
$(nestId + ' #commentTextValue').remove();
$(nestId + ' #editButton').remove();
$(nestId).prepend('<textarea id="editArea">' + txt + '</textarea>');
$(nestId).append('<input type="submit" value="Ok" class="btnOk" />');
})
$('.btnOk').live('click', function (e) {
e.preventDefault();
var container = $(this).closest('.commentWrap');
var itemId = container.attr('id');
var text = container.find('textarea').val();
var nestId = '#' + itemId;
//alert(nestId);
$.ajax({
url: '/Comment/SaveComment',
data: JSON.stringify({ CommentText: text, CommentId: itemId }),
type: 'post',
contentType: 'application/json',
success: function (data) {
if (data.success === true) {
//alert(data.message); // do show/hide stuff here instead of the alert
$(nestId + ' #editArea').remove();
$(nestId + ' .btnOk').remove();
$(nestId).append('<h3 id="commentTextValue">' + data.message + '</h3>');
$(nestId).append('<a id="editButton" href="#">Edit</a>');
}
}
});
});
</script>
<div style="border: 1px solid #dddddd;">
@Html.ActionLink(@Model.Author, "SomeAction")
<div class="commentWrap" id="@Model.CommentId">
<p id="commentTextValue">@Model.CommentText</p>
<a id="editButton" href="#">Edit</a>
</div>
</div>
を使用すると、JavaScriptのようにフォームのコードを書くことを意味してください:$(「#ラップ」)先頭に追加(」 Html.BeginForm ... { ');} – 1110