Добрый день.
Не знаю как именно назвать тему, поэтому назвал вот так
Есть такая таблица, и окно редактирования правила -
Ссылка.
В кнопку "Сохранить" атрибутом data-id передается Id редактируемого правила.
Собственно в чем проблема, при отправке запроса, сервер проверяет поля, и если что-то не так, возвращает ошибки, которые выводятся под инпутом.
Если я оставлю пустым поле "Имя", или "Условие", вернутся ошибки и отобразятся под инпутами. Дальше если не обновлять страницу, а нажать на кнопку отменить и перейти к изменению другого правила, то почему-то при запросе на сервер передается data-id первого правила который мы пытались изменить.
Вот js код:
button.tableEdit - кнопка "Изменить"
button#saveChangeRule - кнопка "Сохранить"
$(document).ready(function () {
$("input[type=checkbox]").click(function () {
var id = this.id;
var val = this.checked;
$.post('tableRule/changeFlagRule/', {"id": id, "val": val},
function (res) {
$("#message").dialog({ title: 'Сообщение', show: 'drop', hide: 'explode' }).html(res);
});
});
$('button.tableEdit').click(function () {
var $btn = $(this);
var rule = $btn.data('rule');
$('button#saveChangeRule').attr({
'data-id': rule.id
});
$('#myModalLabel').html('Введите новые данные для правила #' + rule.id);
$('#errorName').empty();
$('#errorRule').empty();
$('#errorEventSid').empty();
$('#errorSignalSid').empty();
$('#inputEventSid ').val(rule.event_id);
$('#inputSignalSid').val(rule.signal_id);
$("#EventSid").find('input').val(rule.event.event_sid);
$('#SignalSid').find('input').val(rule.signal.signal_sid);
$('#inputName').val(rule.name);
$('#inputRule').val(rule.rule);
});
$('button#saveChangeRule').click(function () {
var $btn = $(this);
var id = $btn.data('id');
var eventSid = $('#inputEventSid').val();
var signalSid = $('#inputSignalSid').val();
var name = $('#inputName').val();
var rule = $('#inputRule').val();
alert($('#saveChangeRule').data('id'));
$('button').attr('disabled', true);
$.post('tableRules/changeData/', {
event_id: eventSid,
signal_id: signalSid,
rule: rule,
name: name,
id: id
},
function (data) {
if (data['errors']) {
$('button').attr('disabled', false);
$('#errorName').html(data['errors']['name']);
$('#errorEventSid').html(data['errors']['event_id']);
$('#errorRule').html(data['errors']['rule']);
$('#errorSignalSid').html(data['errors']['signal_id']);
return;
}
location.reload();
}
);
});
$('button.addDataRuleTable').click(function () {
var eventSid = $('#inputEventSidAdd').val();
var signalSid = $('#inputSignalSidAdd').val();
var name = $('#inputNameAdd').val();
var rule = $('#inputRuleAdd').val();
$.post('tableRules/addData/', {
event_id: eventSid,
signal_id: signalSid,
rule: rule,
name: name
},
function (data) {
if (data['errors']) {
$('#errorNameAdd').html(data['errors']['name']);
$('#errorEventSidAdd').html(data['errors']['event_id']);
$('#errorRuleAdd').html(data['errors']['rule']);
$('#errorSignalSidAdd').html(data['errors']['signal_id']);
return;
}
location.reload();
}
);
});
});