我无法解决以下代码出错的问题。 我的完整网址是http://localhost:4244/Invoice/PayInvoice?invoicenumber=7069,但是var url = window.location.href;只返回http://localhost:4244/
<a Class="btn btn-success btn-sm confirm" href="/Invoice/PayInvoice?invoicenumber=7069">Pay Invoice</a>
有人能发现我做错了吗
<script>
$(document).ready(function() {
$(".confirm").click(function (e) {
var url = window.location.href; // Returns full URL
alert(url);
$("#displayPopUp").show();
e.preventDefault();
$(".yesupdate").click(function () {
$("#displayPopUp").hide();
window.location = url;
//$(location).attr('href');
});
//if (AcceptPayment()) {
// // then redirect to original location
// window.location = this.href;
//}
//else {
// alert("Couldn't do my thing first");
//}
//var result = window.confirm("You are about to mark invoice as paid, are you sure?");
//if (result == false) {
// e.preventDefault();
//}
});
});
</script>
我尝试做的是将url的值传递给window.location = url;何时单击.yesupdate
答案 0 :(得分:3)
如果您尝试导航到所点击的href
元素的<a>
,则可以使用以下内容在.click()
处理程序中检索该地址:
var url = this.href;
您的代码段中的行只是将当前location
分配回自身,这只会重新加载页面。
var url = window.location.href;
window.location = url;
您可能还需要从click
中移除以前的$(".yesupdate")
处理程序,以避免它们从多个.confirm
堆叠。
您可以使用namespaces定位某些处理程序。
$('.yesupdate').off('.confirm').on('click.confirm', function (e) {
// ...
});
答案 1 :(得分:0)
您不应该分配到window.location
,而是a read-only instance of a Location object。根据您的浏览器,这可能会或可能不起作用或抛出。
相反,您应该使用您要导航到的网址window.location.assign(url)
。您可以使用包含查询字符串和其他部分的完整URL。