Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
19 / 17 / 5
Регистрация: 06.03.2014
Сообщений: 3,066
1

Confirm, окно да нет

01.04.2019, 10:51. Показов 5911. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Javascript
1
<button type="submit" name="name" value="name" style="border-radius: 0;" onclick="(function() {if(confim(\"Отформатировать системный диск?\")) {} else { return false; } })">УДАЛИТЬ</button>
Что не так, забыл, как сделать всплывающее окно с подтверждением и заблокировать отправку формы при отказе??
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.04.2019, 10:51
Ответы с готовыми решениями:

Что возвратит метод confirm(), если пользователь просто закроет окно запроса?
Что возвратит метод confirm(), если пользователь просто закроет окно запроса? (Отметьте один...

Что бы я ни нажал в confirm, будь то "Да" либо "Нет", все равно выдает команду: alert('Извините, но вам нет 18-ти')
Чтобы я не нажал, будь то &quot;Да&quot; либо &quot;Нет&quot;, выдает все равно команду: alert('Извините, но вам нет...

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

диалоговое окно да /нет
Привет. Есть функция удаления чего то из базы. Она внесена на страницу, хочу сделать так, чтобы при...

5
Эксперт JS
6493 / 3904 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
01.04.2019, 11:53 2
Здравствуйте.
confirm неправильно написали.

А вообще грамотно отправлять форму с подтверждением нужно так:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <form>
        <input name="noname" value="Нечто"/>
        <button type="button" name="name" value="name" style="border-radius: 0;">УДАЛИТЬ</button>
    </form>
    <script>
        let form = document.forms[0];
        form["name"].onclick = handler;
 
        function handler() {
            if (confirm("Отформатировать системный диск?")) {
                alert("submit");
                form.submit(); // Реально отправить форму
            }
            // Действия в случае отмены даже необязательны при <button type="button"
        }
    </script>
</body>
</html>
1
Эксперт JS
6493 / 3904 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
02.04.2019, 10:03 3
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

Прикольно. Век живи, век учись.
https://documentation.help/MS-... S/form.htm
If the form includes only one text box and the user presses ENTER, the onsubmit event fires.
Издевательство какое-то.
Если форма содержит ЕДИНСТВЕННЫЙ html-элемент с типом text, то форма отправится по ENTER.
Если мы НЕ хотим отправлять по ENTER, тогда надо ставить ловушку для form.onsubmit:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <form>
        <input name="noname" value="Нечто" />
        <!-- <input name="noname2" value="Нечто2" /> -->
        <button type="button" name="name" value="name" style="border-radius: 0;">УДАЛИТЬ</button>
    </form>
    <script>
        var form = document.forms[0];
        form["name"].onclick = handler;
 
        // Отмена отправки по Enter:
        form.onsubmit = () => false; // ES6
        form.onsubmit = function () { return false; } // ES5
 
        function handler() {
            if (confirm("Отформатировать системный диск?")) {
                alert("submit");
                form.submit(); // Реально отправить форму
            }
            // Действия в случае отмены даже необязательны при <button type="button"
        }
    </script>
</body>
</html>
Если форма содержит НЕ ЕДИНСТВЕННЫЙ html-элемент с типом text, то форма НЕ отправится по ENTER:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <form>
        <input name="noname" value="Нечто" />
        <input name="noname2" value="Нечто2" />
        <button type="button" name="name" value="name" style="border-radius: 0;">УДАЛИТЬ</button>
    </form>
    <script>
        var form = document.forms[0];
        form["name"].onclick = handler;
 
        // // Отмена отправки по Enter:
        // form.onsubmit = () => false; // ES6
        // form.onsubmit = function () { return false; } // ES5
 
        function handler() {
            if (confirm("Отформатировать системный диск?")) {
                alert("submit");
                form.submit(); // Реально отправить форму
            }
            // Действия в случае отмены даже необязательны при <button type="button"
        }
    </script>
</body>
</html>
-------------------------------------
Противоположный случай - мы хотим отправить форму по ENTER.

Для единственного поля ввода.
Кнопка с типом submit НЕ ТРЕБУЕТСЯ:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <form>
        <input name="noname" value="Нечто" />
        <!-- <input name="noname2" value="Нечто2" /> -->
        <!-- <button type="submit" name="name" value="name" style="border-radius: 0;">УДАЛИТЬ</button> // submit Для отправки по ENTER для НЕ единственного поля ввода -->
    </form>
    <script>
        var form = document.forms[0];
        form.onsubmit = handler; // Для отправки по ENTER
 
        // // Отмена отправки по Enter:
        // form.onsubmit = () => false; // ES6
        // form.onsubmit = function () { return false; } // ES5
 
        function handler() {
            if (confirm("Отформатировать системный диск?")) {
                alert("submit");
                form.submit(); // Реально отправить форму
            }
            else
                return false;
            // Действия в случае отмены даже необязательны при <button type="button"
        }
    </script>
</body>
</html>
Для НЕ ЕДИНСТВЕННОГО поля ввода, если мы хотим отправить по ENTER.
Кнопка с типом submit ТРЕБУЕТСЯ:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <form>
        <input name="noname" value="Нечто" />
        <input name="noname2" value="Нечто2" />
        <button type="submit" name="name" value="name" style="border-radius: 0;">УДАЛИТЬ</button> <!--// submit Для отправки по ENTER для НЕ единственного поля ввода-->
    </form>
    <script>
        var form = document.forms[0];
        form.onsubmit = handler; // Для отправки по ENTER для НЕ единственного поля ввода
 
        // // Отмена отправки по Enter:
        // form.onsubmit = () => false; // ES6
        // form.onsubmit = function () { return false; } // ES5
 
        function handler() {
            if (confirm("Отформатировать системный диск?")) {
                alert("submit");
                form.submit(); // Реально отправить форму
            }
            else
                return false;
            // Действия в случае отмены даже необязательны при <button type="button"
        }
    </script>
</body>
</html>
Программирование - это весело
0
74 / 29 / 4
Регистрация: 16.10.2017
Сообщений: 95
02.04.2019, 11:27 4
Цитата Сообщение от amr-now Посмотреть сообщение
Программирование - это весело
Так наверное потому что пошли обходным путем, вместо замены события на onsubmit заменили тип кнопки
0
Эксперт JS
6493 / 3904 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
02.04.2019, 11:29 5
timen, потому что рассмотрели 4 варианта:
1) В форме единственное поле ввода. По ENTER отправлять форму не хотим.
2) В форме не единственное поле ввода. По ENTER отправлять форму не хотим.
3) В форме единственное поле ввода. По ENTER отправлять форму хотим.
4) В форме не единственное поле ввода. По ENTER отправлять форму хотим.
0
74 / 29 / 4
Регистрация: 16.10.2017
Сообщений: 95
03.04.2019, 20:00 6
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

Задача у ТС вроде как не хотим отправлять форму без подтверждения,
универсальный вариант например:
HTML5
1
2
3
4
<form onsubmit="return confirm('уверены?')">
<input type="text" name="text">
<button type="submit" name="name" value="name">УДАЛИТЬ</button>
</form>
2
03.04.2019, 20:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2019, 20:00
Помогаю со студенческими работами здесь

confirm
при confirm высвечивается сообщение типа &quot;вы согласны&quot;(да/нет) , как сделать чтобы туда еще...

Не работает confirm в IE
Не отрабатывает следующий код в IE: &lt;a href=&quot;#&quot; onClick=&quot;return confirm('Действительно...

подобие confirm
Подскажите как сделать функцию подобную confirm, само окно с кнопками у меня сделано, как сделать...

Confirm кнопка
Почему не выводит подтверждение? должно же вроде, что не так сделал? Удалять то удаляет. echo...

Confirm Action
Здравствуйте. Не очень много работаю с Xpage, могу ошибатся в терминологии. Есть приложение...

return confirm
Можно ли сделать так чтоб return confirm перезагружал страницу ПОЛНОСТЬЮ. Вариант if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru