【发布时间】:2015-09-27 04:22:16
【问题描述】:
我有一个用于删除记录的 partialView。我创建了一个按钮来处理删除,但我似乎无法获得触发 jquery 的按钮。
如果我将函数“deleteRecord”添加到按钮,jquery 将触发
<button class="btn btn-primary" data-id=@ViewData["id"] id="btnContinueDelete" onclick="deleteRecord(); return false;">Delete Sales Order</button>
但是,当我使用“id”执行 jquery 时,按钮不会触发
<button class="btn btn-primary" data-id=@ViewData["id"] id="btnContinueDelete">Delete Sales Order</button>
用于执行部分视图
<a class="btn deleteOrder btn-danger" data-modal="" href="@Url.Action("_DeleteConfirmation", "WebOrder", new { id = @Model.Web_Order_ID, shipToName=@Model.Ship_To_Name }) role="button" data-toggle="modal">
<span class="glyphicon glyphicon-edit"></span>
</a>
这是部分视图
<!-- Modal -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3>Ship_To_Name</h3>
</div>
<div class="modal-body">
<p>
Are you sure you want to delete this Sales Order <label id="shipto-name">@ViewData["name"]</label> ID:
<label id="data-id">@ViewData["id"]</label>
</p>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
<button class="btn btn-primary" data-id=@ViewData["id"] id="btnContinueDelete" onclick="writeRecord(); return false;">Delete Sales Order</button>
</div>
这是 jquery:
$(function () {
$.ajaxSetup({ cache: false, async: true });
$("a[data-modal]").on("click", function (e) {
$('#myModalContent').load(this.href, function () {
$('#myModal').modal({
keyboard: true
}, 'show');
bindForm(this);
});
return false;
});
//Not working funtion
$('#btnContinueDelete').click(function() {
var id = $("button[data-id]").val();
$.post(Url.Action("_DeleteConfirmation", "WebOrder"), { id: id }, function(data) {
alert("data deleted");
});
});
});
// Working function
function writeRecord() {
var id = $("button[data-id]").val();
$.post(Url.Action("_DeleteConfirmation", "WebOrder"), { id: id }, function (data) {
alert("data deleted");
});
}
【问题讨论】:
-
什么是
bindForm(this); -
而
var id = $("button[data-id]").val();将始终返回undefined(button没有value属性)。必须是var id = $(this).data('id'); -
bindForm(this) 是一个用于显示模态对话框的函数。
-
感谢 Stephen 进行了更改,但按钮仍未触发
-
你的意思是你连剧本都没打?是否动态加载内容,这种情况下需要使用事件委托
标签: jquery html razor model-view-controller