Как выбрать элемент, который отправлялся ajax
задание следующее: есть таблица с инпутами. Возле каждого поля для записи есть кнопка для отправки. Когда менять текст в инпуте - он становится синим. При нажатии кнопки текст летит при помощи метода .get на сервер, там записывается в базу и если все сработало хорошо то эту строку нужно сделать черного цвета. Как определить какой именно инпут был отправлен?
Вот как выглядит табличка. <table> <tr> <th>ID</th> <th>Действие</th> <th>Текст</th> <th>Отправить</th> </tr> <tr> <td>1</td> <td>Успішна авторизація</td> <td> <input type='text' name=1 value='Ви успішно авторизувалися!'></td> <td><input type='submit' class='sub' value='Изменить'></td> </tr> <tr> <td>2</td> <td>Невірний пароль або мейл</td> <td> <input type='text' name=2 value='Ви ввели невірний e-mail та/або пароль!'></td> <td><input type='submit' class='sub' value='Изменить'></td> </tr> </table> Вот как изменяю цвет на синий $('input').keyup(function(){ $(this).css("color","blue"); }) а вот мой гет полетел $(".alert-list input.sub").click( function(){ var textInput = $(this).parent().prev().find('input').val(); var id = $(this).parent().prev().prev().prev().text(); var data = "id="+id+"&text="+textInput; $.get("modules/misc/alert_list.php", data, sendCallback,"json"); } ) после этого в sendCallback возвращается true если все хорошо и false если не получилось записать. Вот функция sendCallback function sendCallback(data){ if(data.res){ alert('Тут нужно изменить цвет на черный.'); }else{ alert('Не получилось изменить это сообщение!'); } } Как достучаться к тому элементу с которого летел гет запрос? то есть вот к этому который был в гет запросе var textInput = $(this).parent().prev().find('input').val();Пытался сделать вот так: var input = $(this).parent().prev().find('input');а потом в sendCallback написать input.css('color','black')но не получилось, вероятно там что-то с зоной видимости. Как можно это сделать? |
А почему не отправить сразу все поля формы и не заниматься "планеризмом"?
|
Цитата:
$(".alert-list input.sub").click(function(){ var obj = $(this).parent().prev().find('input'); var textInput = obj.val(); var id = $(this).parent().prev().prev().prev().text(); var data = "id="+id+"&text="+textInput; $.get("modules/misc/alert_list.php", data, (function(Obj){ return function(){ // т.о. Obj будет доступен в функции sendCallback() как проносимая переменная sendCallback(); }; })(obj), "json"); }); Либо менять формат запроса и ответа... |
Часовой пояс GMT +3, время: 15:04. |