Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.07.2014, 16:52
Новичок на форуме
Отправить личное сообщение для mastanggt Посмотреть профиль Найти все сообщения от mastanggt
 
Регистрация: 24.07.2014
Сообщений: 8

Неправильно работает атрибут 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();
			}
		);
	});
});
Ответить с цитированием
  #2 (permalink)  
Старый 27.07.2014, 21:20
Профессор
Отправить личное сообщение для Dmitriyff Посмотреть профиль Найти все сообщения от Dmitriyff
 
Регистрация: 22.07.2012
Сообщений: 164

есть различие в использование attr и data

http://stackoverflow.com/questions/7...y-data-vs-attr
Ответить с цитированием
  #3 (permalink)  
Старый 27.07.2014, 21:53
Новичок на форуме
Отправить личное сообщение для mastanggt Посмотреть профиль Найти все сообщения от mastanggt
 
Регистрация: 24.07.2014
Сообщений: 8

Огромное спасибо, несколько дней с этим мучался
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сменить атрибут у тега img lifecom jQuery 2 03.09.2013 15:52
Ajax при заходе на страницу из поисковика - не работает Алексей_ГР Ваши сайты и скрипты 2 02.09.2013 23:03
Скрипт неправильно работает в FF InviS Общие вопросы Javascript 6 11.04.2010 15:56
AJAX - заполнение select - неправильно работает в Mozilla 5.0 С.Тарасов AJAX и COMET 0 16.06.2009 23:58
java-script фотогалерея, неправильно работает в ИЕ6 Scroll Internet Explorer 1 03.12.2008 13:16