Форум программистов, компьютерный форум, киберфорум
JavaScript: RegExp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 11

Отправка формы письма в зависимости от введенного символа

19.09.2015, 14:57. Показов 2596. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, Уважаемые форумчане.

Есть форма с двумя полями: 1: Email/норме телефона, то есть отправка на почту, если пользователь вводит e-mail, и СМС если ввел номер телофона. 2: Текст сообщения.

Интересует вопрос, как можно средством JS сделать отправку формы в первом поле? Если пользователь ввел "@", то отправка на почту, а если "+" то на СМС?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.09.2015, 14:57
Ответы с готовыми решениями:

Вывести текст в зависимости от введенного символа
Составить программу, которая при вводе одного из символов: y или Y выводит на экран слово “Да”, а при вводе n или N – слово “Нет”

Построить квадрат или треугольник в зависимости от введенного символа
Здравствуйте! Вот попалось мне такое задание "Ввести символ (символ 1 или символ 2) и в зависимости от этого построить либо квадрат, либо...

Сортировка структуры по убыванию или возрастанию в зависимости от введенного символа
Написал программу вроде работает, беда только в том , что когда нажимаеш 1 в запущенной прогррамме , то сортировка происходит по...

25
33 / 9 / 11
Регистрация: 20.05.2015
Сообщений: 121
25.09.2015, 22:49
Студворк — интернет-сервис помощи студентам
Thomas Doe, так, подождите, а как у вас устроено все? У вас отправка на сервере происходит?
Почему вам требуется 2 формы? Если не затруднит, киньте код, чтобы посмотреть.
0
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 11
26.09.2015, 11:00  [ТС]
Отправка на сервере.

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form class="form feedback_form" method="post">
 
<!-- отправка ПОЧТЫ -->
<div id="tell_friend_form"> 
<p><input name="phone" data-format=".+"  value="{$phone|escape}" placeholder="E-mail или номер телефона" type="text" id="friend_mail" /></p> 
<p><textarea name="message" data-format=".+"  value="{$message|escape}" placeholder="Текст сообщение" type="text" id="text"/></textarea></p> 
<div class="tell_friend_center">
<button type="submit" onclick="send()" name="feedback" class="tell_friend_button">Отправить</button>
</div>
</div>
<!-- отправка ПОЧТЫ (The End) -->
 
<!-- отправка СМС -->
<input data-format=".+" data-notice="Введите phone" value="{$phone|escape}" name="phone" maxlength="255" placeholder="Ваш Phone / Телефон" type="text"/>
 
<textarea data-format=".+" data-notice="Введите сообщение" value="{$message|escape}" placeholder="Текст письма" name="message">{$message|escape}</textarea>
 
<button class="button" type="submit" name="feedback" value="Отправить" />
<!-- отправка СМС (The End) -->
 
</form>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>
function send(){
//var contact = document.getElementById("contact").value;
var contact = document.getElementById("friend_mail").value;
var reg_phone = /^\+.+$/;
var reg_email = /^\S+@\S+\.[a-zа-я]{2,}$/i;
if(reg_phone.test(contact)){
//отправка sms
}
else if(reg_email.test(contact)){
//отправка e-mail
}
else alert('Введите номер телефона или e-mail');
}
</script>
Также есть еще отдельно JS и PHP код отправки почты и смс от сервиса SMS.RU
0
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 11
30.09.2015, 14:19  [ТС]
Форумчане, плиз! Кто-то поможет с формой?
0
33 / 9 / 11
Регистрация: 20.05.2015
Сообщений: 121
05.10.2015, 12:57
Thomas Doe, а зачем вы 2 input'а сделали, вы же хотели один и для телефона и для почты?

На самом деле, попробуйте запустить для теста следующий код:
JavaScript
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
<script>
    function send(){
        var contact = document.getElementById("friend_mail").value;
        var reg_phone = /^\+.+$/;
        var reg_email = /^\S+@\S+$/i;
        if(reg_phone.test(contact)){
            alert('Это номер телефона');
        }
        else if(reg_email.test(contact)){
            alert('Это e-mail адрес');
        }
        else alert('Введите номер телефона или e-mail');
 
    }
</script>
<form class="form feedback_form" method="post">
    <div id="tell_friend_form">
 
        <p><input data-format=".+" data-notice="Введите phone" value="{$phone|escape}"   placeholder="E-mail или номер телефона" type="text" id="friend_mail" /></p>
 
        <p><textarea data-format=".+" data-notice="Введите сообщение" value="{$message|escape}"   placeholder="Текст сообщение" type="text" id="text"/></textarea></p>
 
        <div class="tell_friend_center">
            <button type="button" class="tell_friend_button" onclick="send()">Отправить</button>
        </div>
    </div>
</form>
С ним видно, что в зависимости от введенного в поле значения срабатывает либо код на номер телефона, либо на email.
0
0 / 0 / 0
Регистрация: 19.09.2015
Сообщений: 11
07.10.2015, 17:39  [ТС]
Цитата Сообщение от b_cat Посмотреть сообщение
Thomas Doe, а зачем вы 2 input'а сделали, вы же хотели один и для телефона и для почты?

На самом деле, попробуйте запустить для теста следующий код:
JavaScript
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
<script>
    function send(){
        var contact = document.getElementById("friend_mail").value;
        var reg_phone = /^\+.+$/;
        var reg_email = /^\S+@\S+$/i;
        if(reg_phone.test(contact)){
            alert('Это номер телефона');
        }
        else if(reg_email.test(contact)){
            alert('Это e-mail адрес');
        }
        else alert('Введите номер телефона или e-mail');
 
    }
</script>
<form class="form feedback_form" method="post">
    <div id="tell_friend_form">
 
        <p><input data-format=".+" data-notice="Введите phone" value="{$phone|escape}"   placeholder="E-mail или номер телефона" type="text" id="friend_mail" /></p>
 
        <p><textarea data-format=".+" data-notice="Введите сообщение" value="{$message|escape}"   placeholder="Текст сообщение" type="text" id="text"/></textarea></p>
 
        <div class="tell_friend_center">
            <button type="button" class="tell_friend_button" onclick="send()">Отправить</button>
        </div>
    </div>
</form>
С ним видно, что в зависимости от введенного в поле значения срабатывает либо код на номер телефона, либо на email.
Распознает.

Но вот нашел что в кнопке button type="button", меняю на type="submit" или наоборот и уже форма не работает...
Просто в СМС type="submit", а в ПОЧТЕ type="button"

Добавлено через 2 часа 38 минут
Скину полностью 2 модуля, возможно так будет проще Вам подсказать мне.

JS для отправки почты
JavaScript
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
$(document).ready(function () {
    $('#tell_friend_form').click(function () {
      var friend_mail = $('#friend_mail').val();
      var text = $('#text').val();
      var tf_captcha = $('#tf_captcha').val();
      $('#result').html('Обрабатываем введенные данные..');
      $.post('ajax/tell_friend.php', 
    {
      'friend_mail': friend_mail, 
      'text': text,
      'tf_captcha': tf_captcha },
    function (data) 
    { 
      if (data == 'empty') 
      { 
        $('#tell_friend_result').html('<span class="tell_friend_error">Обязательно укажите Ваше имя и e-mail друга,<br /> иначе мы не сможем отправить сообщение!</span>'); 
      } 
      else if (data == 'error') 
      {
        $('#tell_friend_result').html('<span class="tell_friend_error">Правильно введите цифры изображенные на картинке!</span>'); 
      } 
      else 
      { 
        $('.tell_friend_center').find('.tell_friend_button').css('display', 'none');
        $('#tell_friend_result').html('<span class="tell_friend_success">Письмо отправлено.</span>'); 
      } 
    });
    });
});
в шаблоне:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
  <form class="form feedback_form" method="post">
    <div id="tell_friend_form">
 
        <p><input data-format=".+" data-notice="Введите phone" value="{$phone|escape}" name="phone"  placeholder="E-mail" type="text" id="friend_mail" /></p>
                                            
        <p><textarea data-format=".+" data-notice="Введите сообщение" value="{$message|escape}"   placeholder="Текст сообщение" type="text" id="text"/></textarea></p>
 
        <div class="tell_friend_center">
            <button type="button" class="tell_friend_button" name="feedback">Отправить</button>
        </div>
    </div>
  </form>
Теперь форма для СМС:
В шаблоне:
HTML5
1
2
3
4
5
6
7
8
9
  <form class="form feedback_form" method="post">
   <div id="tell_friend_form">
    <input data-format=".+" data-notice="Введите phone" value="{$phone|escape}" name="phone" id="friend_mail" maxlength="255" placeholder="Ваш Телефон" type="text"/>
 
    <p><textarea placeholder="Текст сообщение" type="text" id="text"/></textarea></p>
 
    <button class="button" type="submit" name="feedback" value="Отправить" />
   </div>
  </form>
P.S по отдельности работает, а вместе собрать то нет =(((
0
33 / 9 / 11
Регистрация: 20.05.2015
Сообщений: 121
08.10.2015, 14:09
Так смотрите, отправляйте смс-форму так же с помощью javascript'а, как вы и с формой почты делайте. Тогда не надо менять тип button на submit и можно обойтись одной формой.
Например, добавьте к форме атрибут id и сабмитьте ее внутри javascript.

HTML5
1
2
3
<form id="feedback_form" class="form feedback_form" method="post">
...
</form>
Там, где нужно будет отправить форму с смс, пишете в коде:
JavaScript
1
$('#feedback_form').submit();
и форма отправится.
Это самый простой способ отправить форму из javasript.

Добавлено через 14 минут
Другой вопрос, что данные email-формы отправляются у вас ajax'ом (на деле это без перезагрузки страницы), а здесь форма будет отправляться как обычно.

И тут возникает момент, а что вам мешает сделать отправку данных смс-формы так же, как у вас сделана отправка данных email-формы? Для этого у вас используется ajax с jquery, а именно, функция $.post() :
JavaScript
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
$(document).ready(function () {
    $('#tell_friend_form').click(function () {
      var friend_mail = $('#friend_mail').val();
      var text = $('#text').val();
      var tf_captcha = $('#tf_captcha').val();
      $('#result').html('Обрабатываем введенные данные..');
      $.post('ajax/tell_friend.php', 
    {
      'friend_mail': friend_mail, 
      'text': text,
      'tf_captcha': tf_captcha },
    function (data) 
    { 
      if (data == 'empty') 
      { 
        $('#tell_friend_result').html('<span class="tell_friend_error">Обязательно укажите Ваше имя и e-mail друга,<br /> иначе мы не сможем отправить сообщение!</span>'); 
      } 
      else if (data == 'error') 
      {
        $('#tell_friend_result').html('<span class="tell_friend_error">Правильно введите цифры изображенные на картинке!</span>'); 
      } 
      else 
      { 
        $('.tell_friend_center').find('.tell_friend_button').css('display', 'none');
        $('#tell_friend_result').html('<span class="tell_friend_success">Письмо отправлено.</span>'); 
      } 
    });
    });
});
Гуглите jquery ajax (jquery post).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.10.2015, 14:09

Отправка формы на email (письма)
Подскажите что не так? 1.Не отправляется на почту. (сайт стоит на хостинге). 2.Как убрать надпись &quot;Ошибка. Заявка не отправилась,...

Отправка письма из формы обратной связи
Здравствуйте. Есть форма обратной связи насайте под Бирриксом. Нужно сдеать так, чтобы можно было загрузить файл с формы и отправить на...

Отправка письма на почту из формы обратной связи
Здравствуйте , прошу помощи с формой обратной связи и отправкой письма на почту ! HomeController public ActionResult Feedback() ...

Отправка письма с формы обратной связи использую PHPMailer
Добрый день - , не отправляются письма с локалки, сейчас приведу код Вот сама форма на хтмл &lt;div...

Отправка письма php. Письма со скрипта на локальном сервере (Denwer) не приходят на почту.
Доброго Времени Суток!!! Я запускаю Денвером php скрипт со следующим кодом &lt;?php $name=$_GET; $email=$_GET; $tel=$_GET; ...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru