У меня есть страница с обзорами ресторанов, и у каждого отзыва есть кнопка «Мне нравится». Каждая кнопка находится внутри тега формы, который имеет скрытые поля ввода идентификатора просмотра и идентификатора пользователя. Проблема в том, что когда я отправляю форму, все внутри и снаружи определенного тега формы на этой странице передается на сервер, и я не знаю, какой отзыв понравился для обновления базы данных и интерфейса. Можно ли как-то отправить данные только внутри тега формы? Спасибо.
Тег формы, каждый отзыв будет иметь такую форму
<form style="padding-top: 5px;" onsubmit="ajax_helpful_vote()">
<input type="hidden" name="user_id" value="<%= user._id %>">
<input type="hidden" name=<%= review._id %> value="<%= review._id %>">
<button type="submit" class="btn btn-primary" id=<%= review._id %>>
<span class="glyphicon glyphicon-thumbs-up"></span> Helpful
</button>
</form>
функция ajax для отправки данных на сервер
function ajax_helpful_vote(form_id) {
event.preventDefault();
var formArray= $("#"+form_id).serializeArray();
var data={};
for (var index in formArray){
data[formArray[index].name]= formArray[index].value;
}
$.ajax({
url: '/helpful_vote' ,
data: data,
dataType: 'json',
type: 'POST',
success: function (dataR) {
// disable helpful button
document.getElementById(dataR.liked_review_id.toString()).disabled = true;
// update number of votes
$('#' + dataR.liked_review_id.toString() + "-text").prepend("You and ");
},
error: function (xhr, status, error) {
console.log('Error: ' + error.message);
}
});
}
Я пытался присвоить форме имя / идентификатор и в функции ajax получить данные этой формы, используя имя / идентификатор, но он перенаправляет меня на страницу, на которой есть параметры полей ввода и не отправляются никакие данные. на заднем плане. Это означает, что функция ajax никогда не запускается, поэтому она перезагружает страницу методом get по умолчанию.
<% }else{
var text_id = review._id + "-text";
var form_id = review._id + "-form";
%>
<p style="color: green; padding-top: 5px" id=<%= text_id %>><%= review.liked_by.length %> people find this review helpful</p>
<form id="<%=form_id%>" style="padding-top: 5px;" onsubmit="ajax_helpful_vote(<%=form_id.toString()%>)">
<input type="hidden" name="user_id" value="<%= user._id %>">
<input type="hidden" name=<%= review._id %> value="<%= review._id %>">
<button type="submit" class="btn btn-primary" id=<%= review._id %>>
<span class="glyphicon glyphicon-thumbs-up"></span> Helpful
</button>
</form>
Визуализированный тег формы
![enter image description here](https://i.stack.imgur.com/VOcn6.png)