Неправильно работает атрибут data-*
Добрый день.
Не знаю как именно назвать тему, поэтому назвал вот так :) Есть такая таблица, и окно редактирования правила - Ссылка. В кнопку "Сохранить" атрибутом 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(); } ); }); }); |
|
Огромное спасибо, несколько дней с этим мучался
|
Часовой пояс GMT +3, время: 18:26. |