I have a button on the page, the button logic works but it doesnot refresh the page. Button is on the table to add items in to the cart
<td>
<row>
<column>
<input type="text" style="text-align:center" id="@("quantityReq"+@item.InventoryId)" name="quantityReq" value="@item.QuantityReq" size="2" />
</column>
<column>
<input type="hidden" id="@("customer"+@item.InventoryId)" name="customerID" value="@Model.CustomerData.CustomerId" />
<input type="hidden" id="@("inventory"+@item.InventoryId)" name="invetoryID" value="@item.InventoryId" />
<br />
<a href="#" id="buyNow" data-id="@item.InventoryId">Add to Cart</a>
</row>
</td>
Below is the script for the above button
<script type="text/javascript">
$(document).ready(function () {
$(document).on("click", "#buyNow", (function (e) {
e.preventDefault();
e.stopImmediatePropagation();
var id=$(this).data("id");
onBuyNow(id);
}));
function onBuyNow(id) {
var quantityReq = $("#quantityReq"+id).val();
var customerId = $("#customer"+id).val();
var data = {
customerID: customerId,
quantityReq: quantityReq,
invetoryID: id
};
$.ajax({
type: 'POST',
url: '@Url.Action("OrderItem", "Inventories")',
data: data,
dataType: "json",
success: function (result) {
if (result !== "")
{
if (result.available == "Quantity0")
$("#errorMessage" + result.inventoryId).val("Enter a valid Quantity");
else
$("#errorMessage" + result.inventoryId).val(`Only ${result.available} available`);
}
else {
var url = '@Url.Action("Index", "Inventories")';
alert(url);
var roomId = @HttpContextAccessor.HttpContext.Request.Query["rmName"]
alert(roomId);
window.location.href = `${url}?custID=${customerId}&rmName=${roomId}&success=true`;
}
},
error: function (error) {
alert(error);
}
});
};
});
</script>
}
I have the OrderItem method on the Inventories controller which takes care of the adding the item to cart and dealing with the updating the quantity if the result is an empty string is not refreshing the page. I can see the fisrt alert(url) shows up but not the alert(roomId).The current URL of the page is https://localhost:xxxxx/Inventories/Index/56?custID=56&rmName=A1 I am not sure why @HttpContextAccessor.HttpContext.Request.Query["rmName"] is not working here. I was hoping the click of the button if the result is empty string it will return the URL like https://localhost:xxxxx/Inventories/Index/56?custID=56&rmName=A1&success=true.
after clicking the button it just stays like below
I finally see the error on the console like
Can anyone please suggest what is that I am missing
Via Active questions tagged javascript - Stack Overflow https://ift.tt/8K7hT25

Comments
Post a Comment