Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Submit формы только после confirm
 
 автор: Sturmvogel   (23.11.2011 в 17:28)   письмо автору
 
 

После нажатия на кнопку submit-типа вызывается действие по onclick="addAction(this.form)", которое спрашивает, добавлять ли действие (значение в скрытое поле "additional" какое-либо значение или нет).
Как сделать, чтобы только после этого происходила отправка формы?

<script type="text/javascript">
        function addAction(form)
        {
            if (confirm("Add the action?")) document.getElementById("test").value = "testing";
            
            form.submit();
        }
    </script>


При таком коде получается, будто форма уже отправилась при нажатии, поэтому записанное JavaScript-ом значение в поле не передается.

  Ответить  
 
 автор: АЯС   (23.11.2011 в 20:25)   письмо автору
 
   для: Sturmvogel   (23.11.2011 в 17:28)
 

Поменяйте тип кнопки сабмита на button и повесьте на неё вашу функцию.

  Ответить  
 
 автор: Sturmvogel   (23.11.2011 в 21:07)   письмо автору
 
   для: АЯС   (23.11.2011 в 20:25)
 

проблема осталась


<form action="admin.php?mode=spam_archive" method="post" name="spam_reports" id="actions_form">

...

<button name="spam_archive_action" value="Not Spam" title="Click to mark this page as not-spam page" onclick="addAction(this.form)">Not Spam</button>

...

<script type="text/javascript">

        function addAction(form)

        {

            if (confirm("Unban the page author?"))

            {

                document.getElementById("additional_action").value = "unban_author"ж

            }

form.submit();

            

        }

    </script>

  Ответить  
 
 автор: АЯС   (23.11.2011 в 21:40)   письмо автору
 
   для: Sturmvogel   (23.11.2011 в 21:07)
 

Никаких проблем не вижу. Добавьте нужное поле, закройте форму и уберите кириллический символ из скрипта
<form action="admin.php?mode=spam_archive" method="post" name="spam_reports" id="actions_form">

<input id="additional_action" name="hh">
...

<button name="spam_archive_action" value="Not Spam" title="Click to mark this page as not-spam page" onclick="addAction(this.form)">Not Spam</button>

...

</form>
<script type="text/javascript">

        function addAction(form)

        {

            if (confirm("Unban the page author?"))

            {

                document.getElementById("additional_action").value = "unban_author";  //Ж-кать не надо

            }

form.submit();

            

        }

    </script> 

  Ответить  
 
 автор: flaers   (24.11.2011 в 12:12)   письмо автору
 
   для: АЯС   (23.11.2011 в 21:40)
 

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

<script type="text/javascript"> 
        function addAction(form) 
        { 
            if (confirm("Add the action?")) {  document.getElementById("test").value = "testing"; form.submit(); }
        } 
    </script>

  Ответить  
 
 автор: АЯС   (24.11.2011 в 12:55)   письмо автору
 
   для: flaers   (24.11.2011 в 12:12)
 

Перечтите исходный топик.

Форма и ДОЛЖНА отправляться ВСЕГДА.
Проблема у топикстартера была в том, что поле с id="additional_action" не получала прописываемого скриптом значения при положительном ответе на вопрос конфирма.

  Ответить  
 
 автор: flaers   (24.11.2011 в 17:28)   письмо автору
 
   для: АЯС   (24.11.2011 в 12:55)
 

давайте дождемся автора темы и не будем создавать ненужную дискуссию

  Ответить  
 
 автор: Sturmvogel   (24.11.2011 в 18:18)   письмо автору
 
   для: flaers   (24.11.2011 в 17:28)
 

проблему решил, перейдя на ссылки и введя href="javascript:void();". Иначе данные не отправляются

  Ответить  
 
 автор: АЯС   (24.11.2011 в 19:41)   письмо автору
 
   для: Sturmvogel   (24.11.2011 в 18:18)
 

Глупости.
Уберите атрибуты из тега <FORM>, сохраните код как файл *.html, запустите его в браузере, нажмите кнопку, ответьте на вопрос конфирма и внимательно изучите адресную строку - там увидите пару hh=unban_author при утвердительном ответе на вопрос конфирма (или hh= при отрицательном), что является свидетельством того, что данные прекрасно отправляются:
<form action="admin.php?mode=spam_archive" method="post" name="spam_reports" id="actions_form">

<input id="additional_action" name="hh">
...

<button name="spam_archive_action" value="Not Spam" title="Click to mark this page as not-spam page" onclick="addAction(this.form)">Not Spam</button>

...

</form>
<script type="text/javascript">

        function addAction(form)

        {

            if (confirm("Unban the page author?"))

            {

                document.getElementById("additional_action").value = "unban_author";  //Ж-кать не надо

            }

form.submit();

            

        }

    </script> 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования