Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с функцией confirm 
:(
    Опции темы
PsiMagistr
Дата 22.7.2013, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



Ребята, очень прошу вас помочь.

Есть у меня скрипт-файл (.js), который я к странице подключаю. Там описана функция вида:


Код


function Proba()
{
    return confirm("Вы хотите удалить это произведение?");
    
}



Основной PHP файл подключает дж-скрипт к странице.

Имеется ссылка вида (правда все это оформлено в PHP):

Код

<a href="Адрес+GetЗапрос" onClick="return Proba()">Удаление</a>


При щелчке должна выполняться функция Дж-скрипта и в зависимости от возвращенного значения либо блокировать собственную Get-отправку (В ссылке Get-запрос), либо разрешать ее.

Дело в том, что как только страница получает Get запрос, выполняется удаление.

В Хроме и Мозилле все отрабатывает успешно. В ИЕ 8 через раз... Часто удаляет запись (в базе) и при отмене.



Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="scripts/lib.js">

</script>
</head>

<body>
<a href="index.php?z=1" onClick="return Proba()">Переход по ссылке</a>
</body>
</html>


Полный код. Иногда и при нажатии "Отмена", (особенно если до этого Вы нажимали "Да") в ИЕ слышен щелчок... Т.е. ссылка отправилась....
Чего не должно быть...


Это сообщение отредактировал(а) PsiMagistr - 22.7.2013, 19:13


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
PsiMagistr
Дата 23.7.2013, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



Код

<?php
include("lib.php"); /*Подключаем файл библиотек*/
db_connection(); /*Подключаемся к базе данных*/

if (isset($_GET['del'])) /*Проверка существования нужной Гет-переменной*/
{
mysql_query("DELETE FROM t_test WHERE id='".$_GET['del']."'"); /*Удаляем запись, если отправлена Гет переменная*/
}

$q = mysql_query("SELECT * FROM t_test ORDER BY id"); /*Считываем все оставшиеся данные из таблицы*/
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="scripts/lib.js">

</script>
</head>

<body>
<?php
while($row = mysql_fetch_assoc($q))
{
echo '<a href="index.php?del='.$row['id'].'" onClick= "return Proba()">'.$row['text'].'&nbsp;Удаление</a><br><br>'; /*Выводим в цикле*/
}
?>
</body>
</html>



Ребята, вот выкладываю полный тестовый код. Итак есть таблица: t_test. Если отправлена страница с Get-переменной Del, то происходит удаление записи, в зависимости от того какую ссылку нажали. (Ряд ссылок выдается в цикле, их число соответствует количеству записей в базе)

Ссылка однако при своем нажатии выдает некий Джава-скрипт запрос "Хотите удалить?" Если нажимается "Да", соответственно происходит удаление.


-----------------------------

Вот код вызываемой в ссылке Джава-скрипт функции:

Код

function Proba()
{
    return confirm("Вы хотите удалить это произведение?");
    
}



Так вот и в Мозилле и в Хроме весь этот спектакль отрабатывает совершенно нормально. Поведение ИЕ 8 странно. Если вы один раз выбрали "Удалить, то"

Выбранная запись удаляется. (Как и должно быть.)

А вот если при попытке удаления следующей записи, Вы выбрали "Отмена", запись все равно будет удалена.



--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
PsiMagistr
Дата 23.7.2013, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



Точно такая же проблема существует и на проф сайте: 

http://www.devels.ru/index.php?what=art&p=30

Попробуйте несколько раз понажимать там пробную ссылку "www.devels.ru" при ранее нажатом ОК.  В ИЕ 8 работает через раз. Часто осуществляет переход по ссылке и при отмене.

Это сообщение отредактировал(а) PsiMagistr - 23.7.2013, 14:14


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
akizelokro
Дата 23.7.2013, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Может, после return Proba(); точку с запятой поставить?
в IE бывает много фенечек.

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
PsiMagistr
Дата 24.7.2013, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



Биг сенкс akizelokro за отклик.

Вот что мне удалось выяснить. Привожу полный код функции :

Код


function Proba()
{
    if(confirm('Удалить ли мне ссылочку?!') == false)
    {
        
    if(navigator.appName == "Microsoft Internet Explorer") /*Если мы в Интернет эксплорере, то*/
    {
    event.returnValue = false; /*Вот какая штуковина*/
    }
    else
    {
        return false;
    }
    
    
    }
    else
    {
    return true;
    }


}




Пока это работает и в ИЕ тоже. Но может кто-нибудь знает проф. вариант, как это можно сделать?

Всех заранее благодарю.

Это сообщение отредактировал(а) PsiMagistr - 26.7.2013, 10:22


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1161 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.