Bootstrap 模态无法与我的 ajax 代码一起正常工作
Bootstrap modal does not work correctly with my ajax code
我创建了一个名为 ModalReq 的局部视图,需要用数据库中的数据填充它。
控制器和视图工作正常。
但是当你点击带有 class '.car-box' 的元素时,一开始没有任何反应,在第二次按下后,正确填充的模态出现,但它不想关闭无论如何,如何使模态正常工作?
Ajax 主视图中的代码:
<script>
function ajaxReq(url,type,selector) {
$.ajax({
url: url,
type: type,
contentType: 'application/json',
success: function (data) {
$(selector).html(data);
}
});
}
</script>
<script>
$(document).on('click', '.car-box', function () {
var objText = $(this).children('.box-his').children("span").text();
var objId = objText.substring(1, objText.length);
ajaxReq("@Url.Action("ModalReq")" + "?productId=" + objId, "POST", '#result');
$('#myModal').modal('show')
});
</script>
然后我在这个视图的最底部用它创建了一个 div(但仍在 Ajax 代码之上)
<div id="result"></div>
当您单击带有 class '.car-box' 的元素时,Ajax 代码会创建一个对象,该对象在卡片中接收其编号和字符串类型。然后它只留下一个具有相同类型字符串的数字。然后我调用 ajaxReq,我在其中传输接受我们指定的 Id 的部分视图。然后包括创建的模式 ...
我从来没有用过ajax,所以我需要你的帮助=)
在当前迭代中 $('#myModal').modal('show')
未等待 Ajax 响应。
将它移到您的成功函数中怎么样?
success: function (data) {
$(selector).html(data);
$('#myModal').modal('show')
}
然后弹窗一按就会获取到数据。
或者:这个答案 应该会为您提供将其设置为 Promise 的指导。
我创建了一个名为 ModalReq 的局部视图,需要用数据库中的数据填充它。
控制器和视图工作正常。
但是当你点击带有 class '.car-box' 的元素时,一开始没有任何反应,在第二次按下后,正确填充的模态出现,但它不想关闭无论如何,如何使模态正常工作?
Ajax 主视图中的代码:
<script>
function ajaxReq(url,type,selector) {
$.ajax({
url: url,
type: type,
contentType: 'application/json',
success: function (data) {
$(selector).html(data);
}
});
}
</script>
<script>
$(document).on('click', '.car-box', function () {
var objText = $(this).children('.box-his').children("span").text();
var objId = objText.substring(1, objText.length);
ajaxReq("@Url.Action("ModalReq")" + "?productId=" + objId, "POST", '#result');
$('#myModal').modal('show')
});
</script>
然后我在这个视图的最底部用它创建了一个 div(但仍在 Ajax 代码之上)
<div id="result"></div>
当您单击带有 class '.car-box' 的元素时,Ajax 代码会创建一个对象,该对象在卡片中接收其编号和字符串类型。然后它只留下一个具有相同类型字符串的数字。然后我调用 ajaxReq,我在其中传输接受我们指定的 Id 的部分视图。然后包括创建的模式 ...
我从来没有用过ajax,所以我需要你的帮助=)
在当前迭代中 $('#myModal').modal('show')
未等待 Ajax 响应。
将它移到您的成功函数中怎么样?
success: function (data) {
$(selector).html(data);
$('#myModal').modal('show')
}
然后弹窗一按就会获取到数据。
或者:这个答案