Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Определить наличие элемента (https://javascript.ru/forum/events/21735-opredelit-nalichie-ehlementa.html)

flame 22.09.2011 11:08

Определить наличие элемента
 
Нужна небольшая помощь. Ситуация такая.
Есть кнопка, при нажатии на которую отсылается информация на сервер (AJAX). Ответ приходит в виде блока div, который вставляется в конец тега body. Ответ может быть двух вариантов: <div class="Success"></div> или <div class="Fail"></div>. Так вот, задача в том, чтобы когда появляется блок "Success", нужно перейти на другую страницу.
Пока имею вот такое, некрасивое решение. Подскажите, как по грамотному это переделать.
jQuery("#link").click(function (e) {
		setTimeout(function () {
			if (jQuery(".Success").length) {
				top.location.href='index.php';
			;}
		}, 1000);

kadabrik 22.09.2011 11:36

У метода $.ajax нужно записать callback функцию в параметр success. Она вызовется после получение данных, и может напрямую с ними работать.

flame 22.09.2011 11:50

А не подскажите, как проверить на какой кнопке был клик, например с id link_1 или link_2?

Триви 22.09.2011 12:00

Цитата:

Сообщение от flame (Сообщение 127613)
А не подскажите, как проверить на какой кнопке был клик, например с id link_1 или link_2?

$("#link_1, #link_2").click(function (e) {
if ($(this).id =='link_1') ...

flame 22.09.2011 12:55

А можно как-то определить без обработчика события для кнопки. Просто есть форма, в ней две кнопки. При нажатии на любую из них форма отправляется. И вот там и надо определить при нажатии на какую кнопку была отправлена форма. Или можно как-то в обработчике события onsubmit формы послать id нажатой кнопки?

Триви 22.09.2011 13:35

вы требуете невозможного.
для этого существует атрибут name.
если у вас две кнопки, то проверяйте на сервере какая из них была нажата через массив $_POST

<?php
if($_POST['button_1']) ...
if($_POST['button_2']) ...
?>


где button_1 и button_2 значения атрибута name в ваших кнопках.


Часовой пояс GMT +3, время: 16:18.