Вопрос по js

Тема в разделе "Другие языки", создана пользователем podkashey, 6 июн 2008.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. podkashey

    podkashey Постоялец

    Регистр.:
    25 сен 2007
    Сообщения:
    65
    Симпатии:
    8
    Имеется следующий скрипт:
    <script>
    function check1()
    {
    if (document.SendMail.from_ch.value == 'hz')
    alert("Выберите, пожалуйста, источник информации о нас.");
    else
    document.SendMail.submit();
    }
    </script>
    И код:
    <td align=center colspan="3" width="100%" align="center"><input type="submit" name="SendMail" value="отправить" onclick="javascript:check1();">

    Но при тыке на кнопку все равно помимо алерта происходит выполнение процедуры, то есть отправляется письмо. Требуется чтобы оно не отсылалось, а просто выскакивал алерт. Какая ошибка здесь?
     
  2. masto

    masto Прохожие

    Код:
    onclick="check1();return false;"
     
  3. zardoz

    zardoz Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    84
    Симпатии:
    60
    нужно обрабатывать событие OnSubmit

    <script language="JavaScript">
    <!--
    function form() {
    if (document.SendMail.from_ch.value == 'hz') {
    alert("Выберите, пожалуйста, источник информации о нас.");
    return false;
    }
    else {
    return true;
    }
    }
    //-->
    </script>

    <form method="post" action="post.php" onSubmit="form()">
    <input type="submit" name="SendMail" value="отправить">
    </form>
     
  4. podkashey

    podkashey Постоялец

    Регистр.:
    25 сен 2007
    Сообщения:
    65
    Симпатии:
    8
    masto, так не прокатывает, не отправляется письмо....
    Кому интересно http://maomed.ru/contacts.php - вот скрипт. Второй аналогично как у меня и было выдает алерт и отсылает письмо...
     
  5. Sect0R

    Sect0R Читатель

    Заблокирован
    Регистр.:
    4 апр 2007
    Сообщения:
    136
    Симпатии:
    43
    <script>
    function check1()
    {
    if (document.SendMail.from_ch.value == 'hz') {
    alert("Выберите, пожалуйста, источник информации о нас.");
    return false;
    }
    else {
    return true;
    }
    }
    </script>

    А в форме:
    <form action="post.php" name="SendMail" onsubmit="return check1()" >
     
  6. podkashey

    podkashey Постоялец

    Регистр.:
    25 сен 2007
    Сообщения:
    65
    Симпатии:
    8
    Так не отправляется мыло. Давал же уже ссылку. Проверили бы у себя прежде чем писать.
     
  7. Simpson

    Simpson

    Регистр.:
    22 июл 2007
    Сообщения:
    373
    Симпатии:
    36
    Нужно поменять на
    <input type="button" name="SendMail" value="отправить" onclick="javascript:check1();">

    Проверил - работает.
     
  8. masto

    masto Прохожие

    по onclick может ещё что-то сработать кроме JS?
    я о том зачем писать onclick="javascript:..."
     
  9. Simpson

    Simpson

    Регистр.:
    22 июл 2007
    Сообщения:
    373
    Симпатии:
    36
    Это анахронизм (так называется?). Осталось от тех времен, когда вовсю пользовались VBScript и браузеры не умели(не хотели) различать тип скриптов. Использование данного префикса безвредно, равно как и бесполезно.

    P.S. так, на заметку.
    P.P.S. у топикстартера эта приставка изначально была. А ошибка в другом - в типе инпута.
     
  10. podkashey

    podkashey Постоялец

    Регистр.:
    25 сен 2007
    Сообщения:
    65
    Симпатии:
    8
    Если делать как сейчас:
    <script>
    function check1()
    {
    if (document.SendMail.from_ch.value == 'hz') {
    alert("Выберите, пожалуйста, источник информации о нас.");
    return false;
    }
    else {
    return true;
    }
    }
    </script>

    <form method="post" action="http://maomed.ru/c.php" name="SendMail">

    <input type="button" name="SendMail" value="отправить" onclick="javascript:check1();">
    </td>
    </tr>
    </table>
    </form>

    То кнопка вообще не нажимается.
    П.С. Сейчас подумал - возможно предыдущее что-то работает, но я все тестил в опере, а опера, фф и ие немного по разному обрабатывают js. В любом случае необходимо, чтобы была кроссбраузерность.
     
Статус темы:
Закрыта.