Не получается переделать AJAX запрос с js на jQuery
есть функция, при нажатии на кнопку, отправляются комментарии на сервер, на чистом JavaScript работает, на jQuery не работает...
JS
function SubmitReviewForItem() {
var submitReview = document.querySelector(".btnReview");
submitReview.addEventListener("click", function () {
var review = document.querySelector("#content").value;
var star = document.getElementsByName('star');
for (var i = 0; i < star.length; i++) {
if (star[i].type == "radio" && star[i].checked) {
var rate = star[i].value
}
}
var reviews1 = "rate=" + rate + "&text=" + review;
if (document.querySelector(".Item1").innerHTML === "product1") {
var xhrPostReviewProd1 = new XMLHttpRequest();
xhrPostReviewProd1.open('POST', 'http://smktesting.herokuapp.com/api/reviews/1', true);
xhrPostReviewProd1.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhrPostReviewProd1.setRequestHeader('Accept', "application/json");
xhrPostReviewProd1.setRequestHeader('Authorization', 'Token ' + jsonProductLogin.token);
xhrPostReviewProd1.onreadystatechange = function () {
if (this.readyState === 4) {
xhrPostReviewProd1.onload = function () {
document.querySelector("#content").value = "";
}
}
};
xhrPostReviewProd1.send(reviews1);
}
})
}
jQuery по поводу нахождения селекторов пока роли не играет, просто не менял еще на jQuery
function SubmitReviewForItem() {
var submitReview = document.querySelector(".btnReview");
submitReview.addEventListener("click", function () {
var review = document.querySelector("#content").value;
var star = document.getElementsByName('star');
for (var i = 0; i < star.length; i++) {
if (star[i].type == "radio" && star[i].checked) {
var rate = star[i].value
}
}
var reviews1 = {
"rate=": rate,
"text=": review
};
jsonStr = JSON.stringify(reviews1);
if (document.querySelector(".Item1").innerHTML === "product1") {
$.ajax ({
beforeSend: function(xhr) {
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Authorization', 'Token ' + jsonProductLogin.token);
},
type: "POST",
url: urlMain + "api/reviews/1",
data: jsonStr,
processData: true,
dataType: "json",
success: function (data) {
document.querySelector("#content").value = "";
}
});
}
})
}
|
Если не запутался то как то так.
jQuery(function ( $ ) {
$('.btnReview').click(function ( e ) {
$('.Item1').text() === 'product1' &&
$.ajax({
type: 'POST',
url: 'http://smktesting.herokuapp.com/api/reviews/1',
data: {
'rate': $(':radio[name=star]:checked').val(),
'text': $('#content').val()
},
headers: {
'Authorization': 'Token ' + jsonProductLogin.token
},
success: function () {
$('#content').val('');
}
});
return false;
});
});
|
dd_smol,
Спасибо, помогло |
| Часовой пояс GMT +3, время: 01:42. |