Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8

Несколько web форм на одной странице

11.04.2018, 12:58. Показов 2886. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Знаю что такая тема уже была, но так как я не большой специалист в js, то самостоятельно разобраться не получилось.

Есть чужой код,который обрабатывает 1 форму на странице, а как сделать чтобы работало 2 и более формы одинаковых.

Просто копировать не получается. При попытке отправить вторую или третью форму перенаправляет в пустые поля первой формы.

Сделала запросу разработчику, который писал этот плагин.

Его ответ:
it's possible. in js file check if the #id method is bound to the id of the html element.
you might need to modify the JS or your webform or dont think php needs modications.

Заранее спасибо.


HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<form id="WebToLeadForm2" class="WebToLeadForm WebToLeadFormColor form-horizontal"   style="border-radius: 10px; background-color: rgba(19,53,82,0);" action="/thank-you/" method="post" name="WebToLeadForm2">
<div id="first_nameg" class="form-group"><input id="first_name" required title="Ой, кажется, Вы не полностью ввели Ваше имя :( Попробуйте, пожалуйста, еще раз!" class="form-control" name="first_name" size="27" type="text" placeholder="Имя Фамилия" /></div>
<div id="telephoneg" class="form-group"><input type="tel" id="telephone" name="telephone" class="form-control" pattern="8[0-9]{3}[0-9]{3}[0-9]{2}[0-9]{2}" required value="" size="27"  placeholder="8XXXXXXXXXX" title="Ой, кажется, Вы ошиблись - номер должен содержать 11 цифр и начинаться с 8.  Хотим напомнить, что предложение действительно только для Москвы и МО."/></div>
<div id="emailg" class="form-group"><input id="email" class="form-control" name="email" size="27" type="email" placeholder="E-mail..." /></div>
<div id="agreeg" class="form-group">
<input id="send_submit" style="border-radius: 5px; width: 100%; font-family:Roboto; text-align: center; font-size: 18px; background-color:#e43330; padding: 10px 20px;" class="btn btn-danger" name="submit" type="submit" value="Отправить заявку" />
<input id="agree" style="padding-right: 13px; height: auto; margin-left: 5px; font-size: 10px;" checked="checked" name="agree" type="checkbox" value="1" /><span class="agree_color" style="color: #ffffff; font-size: 11px;"> Я согласен(на) на обработку <a class="agree_color" style="color: #ffffff;" href="/policy/">персональных данных</a>. </span><br>
<input id="agree_msk" style="padding-right: 13px; height: auto; margin-left: 5px; float:none; font-size: 10px;" checked="checked" name="agree" type="checkbox" value="1" /><span class="agree_color" style="color: #ffffff; font-size: 11px;"> Мне исполнилось 18 лет и я проживаю в Москве (МО) </span>
<div style="display: none;"><input id="campaign_id" name="campaign_id" type="hidden" value="50grant-4" />
<input id="wsesajkkks90dskjk" name="wsesajkkks90dskjk" type="hidden" value="9f992e0d-7488-93ee-d9a4-47eca202c57c" /></div>
</div>
</form>

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
30
31
32
33
34
35
36
$(function () {
    $(".WebToLeadForm").submit(function (e) {
        ret = true;
        if (!($('#first_name').val()) ) {
            $('#first_nameg').addClass('has-error');
            ret = false;
        } else {
            $('#first_nameg').removeClass('has-error');
        }
        if (!($('#telephone').val()) ) {
            $('#telephoneg').addClass('has-error');
            ret = false;
        } else {
            $('#telephoneg').removeClass('has-error');
        }
        if (!$('#agree').is(':checked')) {
            $('#agreeg').addClass('alert alert-danger');
            ret = false;
        } else {
            $('#agreeg').removeClass('alert alert-danger');
        }
        if(!ret) {
        $('#quizc').carousel(7);
        $("#telephone").focus();
    }
    return ret;
    });
 
   $("input.answer").click(function(){window.setTimeout(function(){$("#quizc").carousel("next");}, 350);});
 
   $("#WebToLeadButton2").click(function(e){
       $('#WebToLeadForm2').toggleClass('hidden-sm');
      $('#WebToLeadForm2').toggleClass('hidden-xs');
   });
 
});
PHP
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<?php
 
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
require("quiz.php");
 
register_activation_hook( __FILE__, 'wselead_install' );
add_action('init', 'wsecrm_track');
add_action('init', 'wselead_inject');
add_action('wp_footer', 'wselead_inject_google_tracking');
add_action('the_post', 'wselead_inject_test_results');
add_action('admin_menu', 'wselead_setup_menu');
 
function wselead_setup_menu() 
{
  add_menu_page( 'WSE Leads', 'WSE Leads', 'manage_options', 'wselead', 'wselead_admin' );
}
function wselead_admin()
{
  global $wpdb;
  $table_name = $wpdb->prefix . 'leads';
  $leads = $wpdb->get_results( "SELECT id, tx_id, created_at, first_name, last_name, email, source, source3, source_url, telephone, note, note1, info0, info1, info2, ip FROM $table_name order by id desc limit 100" );
  echo "<h1>Last 100 leads</h1><table border='1'>";
  foreach($leads as $lead) {
    echo  "<tr>";
    echo "<td>" . esc_html($lead->id) . "</td>";
    echo "<td>" . esc_html($lead->tx_id) . "</td>";
    echo "<td>" . esc_html($lead->created_at) . "</td>";
    echo "<td>" . esc_html($lead->first_name) . "</td>";
    echo "<td>" . esc_html($lead->last_name) . "</td>";
    echo "<td>" . esc_html($lead->email) . "</td>";
    echo "<td>" . esc_html($lead->telephone) . "</td>";
    echo "<td>" . esc_html($lead->source) . "</td>";
    echo "<td>" . esc_html($lead->note) . "</td>";
    echo "<td>" . esc_html($lead->info2) . "</td>";
    echo "<td>" . esc_html($lead->ip) . "</td>";
    echo "<td>" . esc_html($lead->source3) . "</td>";
    echo "<td>" . esc_html($lead->source_url) . "</td>";
    echo "<td>" . esc_html($lead->info0) . "</td>";
    echo "<td>" . esc_html($lead->info1) . "</td>";
    echo  "</tr>";
  }
  echo "</table>";
 
}
function wselead_inject()
{
    wp_enqueue_script('wselead', '/wp-content/plugins/wselead/wselead.js', false, false, true);
}
 
function wsecrm_track()
{
 
  if(!isset($_COOKIE["wse_landing_page"]))  {
    setcookie("wse_landing_page", $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 0, '/');
    $_COOKIE["wse_landing_page"] = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
   }
 
  if(!isset($_COOKIE["wse_refer"]) ) {
    setcookie("wse_refer", $_SERVER['HTTP_REFERER'], 0, '/');
    $_COOKIE["wse_refer"] = $_SERVER['HTTP_REFERER'];
  }
 
  wsecrm_insert();
}
$wselead_insert=0;
function wsecrm_insert()
{
    global $wselead_insert;
     if(!isset( $_POST['wsesajkkks90dskjk']) )
         return;
 
   global $wpdb;
   $table_name = $wpdb->prefix . 'leads';
   $values = array(       
       'created_at' => current_time( 'mysql' ), 
       'updated_at' => current_time( 'mysql' ),
       'note1' =>  serialize($_REQUEST),
       'tx_id' => 1
   );
   $values['source3'] = isset($_COOKIE["wse_landing_page"]) ? $_COOKIE["wse_landing_page"] : $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
   $values['source_url'] = isset($_COOKIE["wse_refer"]) ? $_COOKIE["wse_refer"] :  $_SERVER['HTTP_REFERER']; 
 
   $values['ip'] = getenv('HTTP_CLIENT_IP')?:
getenv('HTTP_X_FORWARDED_FOR')?:
getenv('HTTP_X_FORWARDED')?:
getenv('HTTP_FORWARDED_FOR')?:
getenv('HTTP_FORWARDED')?:
getenv('REMOTE_ADDR');
 
   $post_fields = array(
       'source' => "campaign_id", 
       'first_name' =>"first_name",
       'last_name' =>"last_name",
       'telephone' => "telephone",
       'email' => "email",
       'first_name' => "first_name",
       'note' => 'note',
       'info0' => 'consultant-link',
       'info1' => 'user-link',
       'info2' => 'info2'
   );
   foreach($post_fields as $sql_field => $post_field)
      if(isset($_POST[$post_field]))
        $values[$sql_field] =  sanitize_text_field($_POST[$post_field]);
 
   $wpdb->insert($table_name, $values);
   if(isset($values['telephone']) && strlen($values['telephone'])>=7 )
      $wselead_insert = 1; // lead inserted success
 
 
}
function wselead_inject_test_results()
{
    global $wselead_insert;
     if(!isset( $_POST['wsesajkkks90dskjk']) )
         return;
     if($_POST['wsesajkkks90dskjk']!='quiz-0120912as=1290')
         return;
     $quiz = new Quiz();
     echo $quiz->check();     
     
}
function wselead_inject_google_tracking()
{
    global $wselead_insert;
     if(!isset( $_POST['wsesajkkks90dskjk']) || !isset($wselead_insert) )
         return;
     if($wselead_insert!=1)
         return;
 
  echo '<script type="text/javascript">
$(function(){
  var ig = new Image(1,1);ig.src = "http://www.googleadservices.com/pagead/conversion/1051016378/?label=apEqCLKQeRC6-ZT1Aw&script=0";  
  dataLayer.push({"event": "SendMainForm"});
  
})</script>';
}
 
 
function wselead_install() {
  global $wpdb;
  global $wselead_db_version;
  $table_name = $wpdb->prefix . 'leads';
 
  $sql = "CREATE TABLE `$table_name` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(255) DEFAULT NULL,
  `last_name` varchar(255) DEFAULT NULL,
  `telephone` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  `info0` varchar(255) DEFAULT NULL,
  `info1` varchar(255) DEFAULT NULL,
  `info2` varchar(255) DEFAULT NULL,
  `ip` varchar(255) DEFAULT NULL,
  `source` text,
  `source3` text,
  `source_url` text,
  `source_refer_url` text,
  `note` text,
  `note1` text,
  `tx_at` datetime DEFAULT NULL,
  `tx_id` int(11) DEFAULT '0',
  `ch_id` int(11) DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;";
  require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
  dbDelta( $sql );
 
  add_option( 'wselead_db_version', '1.0');
}
 
 
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' ); 
 
?>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2018, 12:58
Ответы с готовыми решениями:

Несколько форм обратной связи на одной странице
Всем привет. Уже долгое время мучаюсь, никак не могу найти готовое решение, а собственных знаний js столь мало, что они никак не...

несколько форм на странице с одним submit?
Парни, подскажите, плиз. Есть несколько форм на странице с одним submit для всех, к примеру куча форм с классом dadada. Так когда я...

Обработка двух форм на одной странице
Здравствуйте, форумчане! На странице две формы, заполняю первую, данные уходят ajax’ом, в ответ приходит id новой записи ajax’ом, это id ...

18
1 / 1 / 1
Регистрация: 04.03.2015
Сообщений: 22
11.04.2018, 13:25
Добрый день!
В js идет поиск элементов по идентификатору.
Вы можете модифицировать html-код формы, добавить к элементам классы. А также модифицировать js-код и сделать селекторы по классу, а не по id

Добавлено через 49 секунд
php здесь и, правда, ни при чем, как и написал разработчик
0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
11.04.2018, 13:45  [ТС]
Добрый день!

А вы не могли бы подсказать к каким элементам нужно добавить класс, так как я уже даже id всех инпутов меняла на классы и ничего не вышло. Тогда вообще не работают ни одна форма(((

пробовала убрать id формы и оставить только класс, тоже не работает.
Просто перекидывает в верхнюю форму снова.

спасибо
0
1 / 1 / 1
Регистрация: 04.03.2015
Сообщений: 22
11.04.2018, 15:03
Давайте попробуем заменить все id (элементов) на классы:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<form id="WebToLeadForm2" class="WebToLeadForm WebToLeadFormColor form-horizontal"   style="border-radius: 10px; background-color: rgba(19,53,82,0);" action="/thank-you/" method="post" name="WebToLeadForm2">
<div class="first_nameg" class="form-group"><input class="first_name" required title="Ой, кажется, Вы не полностью ввели Ваше имя :( Попробуйте, пожалуйста, еще раз!" class="form-control" name="first_name" size="27" type="text" placeholder="Имя Фамилия" /></div>
<div class="telephoneg" class="form-group"><input type="tel" class ="telephone" name="telephone" class="form-control" pattern="8[0-9]{3}[0-9]{3}[0-9]{2}[0-9]{2}" required value="" size="27"  placeholder="8XXXXXXXXXX" title="Ой, кажется, Вы ошиблись - номер должен содержать 11 цифр и начинаться с 8.  Хотим напомнить, что предложение действительно только для Москвы и МО."/></div>
<div class="emailg" class="form-group"><input class="email" class="form-control" name="email" size="27" type="email" placeholder="E-mail..." /></div>
<div class="agreeg" class="form-group">
<input class="send_submit" style="border-radius: 5px; width: 100%; font-family:Roboto; text-align: center; font-size: 18px; background-color:#e43330; padding: 10px 20px;" class="btn btn-danger" name="submit" type="submit" value="Отправить заявку" />
<input class="agree" style="padding-right: 13px; height: auto; margin-left: 5px; font-size: 10px;" checked="checked" name="agree" type="checkbox" value="1" /><span class="agree_color" style="color: #ffffff; font-size: 11px;"> Я согласен(на) на обработку <a class="agree_color" style="color: #ffffff;" href="/policy/">персональных данных</a>. </span><br>
<input id="agree_msk" style="padding-right: 13px; height: auto; margin-left: 5px; float:none; font-size: 10px;" checked="checked" name="agree" type="checkbox" value="1" /><span class="agree_color" style="color: #ffffff; font-size: 11px;"> Мне исполнилось 18 лет и я проживаю в Москве (МО) </span>
<div style="display: none;"><input id="campaign_id" name="campaign_id" type="hidden" value="50grant-4" />
<input id="wsesajkkks90dskjk" name="wsesajkkks90dskjk" type="hidden" value="9f992e0d-7488-93ee-d9a4-47eca202c57c" /></div>
</div>
</form>
Далее в js-коде прикрепим событие submit не к форме, а к 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
28
29
30
31
32
33
34
35
36
37
$(function () {
    $(".send_submit").on("click", function (e) {
        ret = true;
var form = $(event.target).closest("form");
        if (!($(form).find('.first_name').val()) ) {
            $(from).find('.first_nameg').addClass('has-error');
            ret = false;
        } else {
            $(form).find('.first_nameg').removeClass('has-error');
        }
        if (!($(form).find('.telephone').val()) ) {
            $(form).find('.telephoneg').addClass('has-error');
            ret = false;
        } else {
            $(form).find('.telephoneg').removeClass('has-error');
        }
        if (!$(form).find('.agree').is(':checked')) {
            $(form).find('.agreeg').addClass('alert alert-danger');
            ret = false;
        } else {
            $(form).find('.agreeg').removeClass('alert alert-danger');
        }
        if(!ret) {
        $('#quizc').carousel(7);
        $("#telephone").focus();
    }
    return ret;
    });
 
   $("input.answer").click(function(){window.setTimeout(function(){$("#quizc").carousel("next");}, 350);});
 
   $("#WebToLeadButton2").click(function(e){
       $('#WebToLeadForm2').toggleClass('hidden-sm');
      $('#WebToLeadForm2').toggleClass('hidden-xs');
   });
 
});
Добавлено через 1 минуту
Последний код:
JavaScript
1
2
3
4
 $("#WebToLeadButton2").click(function(e){
       $('#WebToLeadForm2').toggleClass('hidden-sm');
      $('#WebToLeadForm2').toggleClass('hidden-xs');
   });
Не вижу, где эта кнопка..

Добавлено через 57 минут
Ну что, помогло?
0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
11.04.2018, 15:07  [ТС]
Спасибо, заменила, но вообще не работает, даже не отправляется форма, в связи с этим закрались сомнения, может ли быть такое, что оригинальный js лежит в файлах плагина (сайт на wordpress), а я пытаюсь сделать изменения на конкретной странице путем вписывания нового js в редактор Head & Footer Code для этой страницы.

Для стилей css все что я туда вписываю имеет приорирет перед основным файлом style.css, но работает ли это и для js?

Если да, то тогда я

Цитата Сообщение от newwebber Посмотреть сообщение
Последний код:
JavascriptВыделить код
1
2
3
4
*$("#WebToLeadButton2").click(function(e ){
* * * *$('#WebToLeadForm2').toggleClass('hidde n-sm');
* * * $('#WebToLeadForm2').toggleClass('hidden-xs');
* *});
Не вижу, где эта кнопка..
Я тоже не нашла эту кнопку, наверное разработчик где-то на сайте еще оставил форму с этой кнопкой.
0
1 / 1 / 1
Регистрация: 04.03.2015
Сообщений: 22
11.04.2018, 15:16
бросьте ссылку, я посмотрю

Добавлено через 26 секунд
на страничку с формами

Добавлено через 4 минуты
По идее, править надо файл плагина. А так должен получиться дубликат. Файл плагина же тоже подключен.
0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
11.04.2018, 15:23  [ТС]
https://www.wallstreetenglish.ru/offer-50grant/

Файл плагина боюсь трогать без гарантии, что все сработает, так как на сайте несколько десятков лэндов с этой же формой, просто везде 1 форма на странице, а тут хотят новый формат с несколькими.

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

Я не планировала всем этим заниматься, но выхода не оставили...

Еще вариант... может потестить на другом сайте, где нет это плагина.
Но тогда я не смогу проверить отправилась ли заявка в базу срм.

Спасибо еще раз!)
0
1 / 1 / 1
Регистрация: 04.03.2015
Сообщений: 22
11.04.2018, 15:57
Тут дело не в том скрипте, что вы выложили. За логику отвечает другой скрипт. Поэтому наши манипуляции и не прокатили.
0
 Аватар для sash23
563 / 410 / 259
Регистрация: 31.05.2016
Сообщений: 1,105
11.04.2018, 16:07
newwebber,
ReferenceError: event is not defined

event заменить на e
или использовать this
0
1 / 1 / 1
Регистрация: 04.03.2015
Сообщений: 22
11.04.2018, 22:01
А если id-шники оставляем, то форма хотя бы одна работает на этой странице?

Добавлено через 3 часа 55 минут
Попробуйте вот так:
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
30
31
32
33
34
35
36
$(function () {
    $(".WebToLeadForm").submit(function (e) {
        ret = true;
        if (!($(this).find('.first_name').val()) ) {
            $(this).find('.first_nameg').addClass('has-error');
            ret = false;
        } else {
            $(this).find('.first_nameg').removeClass('has-error');
        }
        if (!($(this).find('.telephone').val()) ) {
            $(this).find('.telephoneg').addClass('has-error');
            ret = false;
        } else {
            $(this).find('.telephoneg').removeClass('has-error');
        }
        if (!$(this).find('.agree').is(':checked')) {
            $(this).find('.agreeg').addClass('alert alert-danger');
            ret = false;
        } else {
            $(this).find('.agreeg').removeClass('alert alert-danger');
        }
        if(!ret) {
        $('#quizc').carousel(7);
        $("#telephone").focus();
    }
    return ret;
    });
 
   $("input.answer").click(function(){window.setTimeout(function(){$("#quizc").carousel("next");}, 350);});
 
   $("#WebToLeadButton2").click(function(e){
       $('#WebToLeadForm2').toggleClass('hidden-sm');
      $('#WebToLeadForm2').toggleClass('hidden-xs');
   });
 
});
я так понимаю, при правильном заполнении формы, идет перенаправление на страницу /thank-you/, а значения заполненных полей записываются в базу.
0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
12.04.2018, 01:43  [ТС]
да, если id оставить, то первая форма работает и данные отправляются.

Попробовала с классами вообще ни одна не работает(((
0
1 / 1 / 1
Регистрация: 04.03.2015
Сообщений: 22
12.04.2018, 12:35
А вы скрипт этот вообще сейчас убрали?

Добавлено через 17 минут
Вот я залила к себе на сервер. Поставила только те скрипты, что есть на главной.
http://techpodderzhki.net/worldstreet.html
Все работает...

Добавлено через 2 минуты
Како-то скрипт на вашей странице портит всю малину
0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
12.04.2018, 12:45  [ТС]
Я попробовала перенести в header, подумала вдруг приоритет будет выше перед основным скриптом плагина.
Но толку все равно нет.

Как можно понять какой именно скрипт все портит?

А если поменять полностью названия классов в форме и в скрипте, на тот случай если левый скрипт перехватывает по классу или id?
0
1 / 1 / 1
Регистрация: 04.03.2015
Сообщений: 22
12.04.2018, 14:48
Наш скрипт и скрипт оригинала конфликтуют.
Можно добавить наш код в оригинал и все должно работать )

Добавлено через 37 секунд
В нашем скрипте и в скрипте оригинала один и тот же класс у формы

Добавлено через 1 минуту
Если только поменять класс форм на странице и прикрутить к ним наш скрипт

Добавлено через 3 минуты
Вот в как-то так:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
form.submit(function(e){
        ret = true;
        if (!($('#first_name').val())){
            $('#first_nameg').addClass('has-error');
            ret = false;
        } else {
            $('#first_nameg').removeClass('has-error');
        }
        if (!($('#telephone').val())){
            $('#telephoneg').addClass('has-error');
            ret = false;
        } else {
            $('#telephoneg').removeClass('has-error');
        }
        if (!$('#agree').is(':checked')){
            $('#agreeg').addClass('alert alert-danger');
            ret = false;
        } else {
            $('#agreeg').removeClass('alert alert-danger');
        }
if (!($(this).find('.first_name').val()) ) {
            $(this).find('.first_nameg').addClass('has-error');
            ret = false;
        } else {
            $(this).find('.first_nameg').removeClass('has-error');
        }
        if (!($(this).find('.telephone').val()) ) {
            $(this).find('.telephoneg').addClass('has-error');
            ret = false;
        } else {
            $(this).find('.telephoneg').removeClass('has-error');
        }
        if (!$(this).find('.agree').is(':checked')) {
            $(this).find('.agreeg').addClass('alert alert-danger');
            ret = false;
        } else {
            $(this).find('.agreeg').removeClass('alert alert-danger');
        }
        if (!ret){
            $('#quizc').carousel(7);
            $("#telephone").focus();
        }
        return ret;
    });
Добавлено через 9 минут
Это я в оригинал вставила наш код с классами

Добавлено через 1 час 7 минут
Тот вариант не сработал...
Подправила. Теперь у меня работает..))
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
30
31
32
33
form.submit(function(e){
        ret = true;
        if (((typeof($('#first_name').val()) != "undefined" && $('#first_name').val() !== null) && !($('#first_name').val())) || !($(this).find('input.first_name').val()) ){
            $('#first_nameg').addClass('has-error');
 
            $(this).find('.first_nameg').addClass('has-error');
            ret = false;
        } else {
            $('#first_nameg').removeClass('has-error');
            $(this).find('.first_nameg').removeClass('has-error');
        }
        if (((typeof($('#telephone').val()) != "undefined" && $('#telephone').val() !== null) && !($('#telephone').val())) || !($(this).find('input.telephone').val())){
            $('#telephoneg').addClass('has-error');
            $(this).find('.telephoneg').addClass('has-error');
            ret = false;
        } else {
            $('#telephoneg').removeClass('has-error');
            $(this).find('.telephoneg').removeClass('has-error');
        }
        if (((typeof($('#agree').val()) != "undefined" && $('#agree').val() !== null) && !$('#agree').is(':checked')) || !$(this).find('input.agree').is(':checked')){
            $('#agreeg').addClass('alert alert-danger');
            $(this).find('.agreeg').addClass('alert alert-danger');
            ret = false;
        } else {
            $('#agreeg').removeClass('alert alert-danger');
            $(this).find('.agreeg').removeClass('alert alert-danger');
        }
        if (!ret){
            $('#quizc').carousel(7);
            $("#telephone").focus();
        }
        return ret;
    });
Добавлено через 34 минуты
еще подправила...)))
Теперь на всех страницах должно работать (и с id и с классами)
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
30
31
32
33
34
form.submit(function(e){
        ret = true;
        if (((typeof($('#first_name').val()) != "undefined" && $('#first_name').val() !== null) && !($('#first_name').val())) || ((typeof($('input.first_name').val()) != "undefined" && $('input.first_name').val() !== null) && !($(this).find('input.first_name').val()) ) ){
            $('#first_nameg').addClass('has-error');
 
            $(this).find('.first_nameg').addClass('has-error');
            ret = false;
        } else {
            $('#first_nameg').removeClass('has-error');
            $(this).find('.first_nameg').removeClass('has-error');
        }
        if (((typeof($('#telephone').val()) != "undefined" && $('#telephone').val() !== null) && !($('#telephone').val())) || ( (typeof($('input.telephone').val()) != "undefined" && $('input.telephone').val() !== null) &&!($(this).find('input.telephone').val()) ) ){
            $('#telephoneg').addClass('has-error');
            $(this).find('.telephoneg').addClass('has-error');
            ret = false;
        } else {
            $('#telephoneg').removeClass('has-error');
            $(this).find('.telephoneg').removeClass('has-error');
        }
        if (((typeof($('#agree').val()) != "undefined" && $('#agree').val() !== null) && !$('#agree').is(':checked')) ||
        ((typeof($('input.agree').val()) != "undefined" && $('input.agree').val() !== null) !$(this).find('input.agree').is(':checked') ) ){
            $('#agreeg').addClass('alert alert-danger');
            $(this).find('.agreeg').addClass('alert alert-danger');
            ret = false;
        } else {
            $('#agreeg').removeClass('alert alert-danger');
            $(this).find('.agreeg').removeClass('alert alert-danger');
        }
        if (!ret){
            $('#quizc').carousel(7);
            $("#telephone").focus();
        }
        return ret;
    });
0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
12.04.2018, 17:15  [ТС]
Я вас уже замучила((( вы не могли бы посмотреть на тот лэнд. Правильно ли я все вставила.

Вернула изначальную форму с id и последний вариант скрипта.

Не работает(((

есть мысль попробовать вставить скрипт в оригинальный файл плагина, это смогу сделать ближе к ночи, когда трафик будет минимальный. других мыслей нет уже....
0
1 / 1 / 1
Регистрация: 04.03.2015
Сообщений: 22
12.04.2018, 19:00
Лучший ответ Сообщение было отмечено Zoren9ka как решение

Решение

Я доработала скрипт:
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
30
31
32
33
34
form.submit(function(e){
        ret = true;
        if (((typeof($('#first_name').val()) != "undefined" && $('#first_name').val() !== null) && !($('#first_name').val())) || ((typeof($('input.first_name').val()) != "undefined" && $('input.first_name').val() !== null) && !($(this).find('input.first_name').val()) ) ){
            $('#first_nameg').addClass('has-error');
 
            $(this).find('.first_nameg').addClass('has-error');
            ret = false;
        } else {
            $('#first_nameg').removeClass('has-error');
            $(this).find('.first_nameg').removeClass('has-error');
        }
        if (((typeof($('#telephone').val()) != "undefined" && $('#telephone').val() !== null) && !($('#telephone').val())) || ( (typeof($('input.telephone').val()) != "undefined" && $('input.telephone').val() !== null) &&!($(this).find('input.telephone').val()) ) ){
            $('#telephoneg').addClass('has-error');
            $(this).find('.telephoneg').addClass('has-error');
            ret = false;
        } else {
            $('#telephoneg').removeClass('has-error');
            $(this).find('.telephoneg').removeClass('has-error');
        }
        if (((typeof($('#agree').val()) != "undefined" && $('#agree').val() !== null) && !$('#agree').is(':checked')) ||
        ((typeof($('input.agree').val()) != "undefined" && $('input.agree').val() !== null) && !$(this).find('input.agree').is(':checked') ) ){
            $('#agreeg').addClass('alert alert-danger');
            $(this).find('.agreeg').addClass('alert alert-danger');
            ret = false;
        } else {
            $('#agreeg').removeClass('alert alert-danger');
            $(this).find('.agreeg').removeClass('alert alert-danger');
        }
        if (!ret){
            $('#quizc').carousel(7);
            $("#telephone").focus();
        }
        return ret;
    });
У меня на странице работает.
Сейчас гляну вашу.
Но!
Одновременно два скрипта работать не будут.
Либо вот этот вариант. Им, в принципе, можно заменить оригинал.
Либо оригинал (но с оригиналом несколько форм на одной странице работать не будут).

Добавлено через 10 минут
Вот в этом коде:
JavaScript
1
2
3
4
5
6
 if (((typeof($('#agree').val()) != "undefined" && $('#agree').val() !== null) && !$('#agree').is(':checked')) ||
        ((typeof($('input.agree').val()) != "undefined" && $('input.agree').val() !== null) && !$(this).find('input.agree').is(':checked') ) ){
            $('#agreeg').addClass('alert alert-danger');
            $(this).find('.agreeg').addClass('alert alert-danger');
            ret = false;
        } else {
добавьте && между:
JavaScript
1
"undefined" && $('input.agree').val() !== null)
и
JavaScript
1
 !$(this).find('input.agree').is(':checked'))){
1
 Аватар для sash23
563 / 410 / 259
Регистрация: 31.05.2016
Сообщений: 1,105
12.04.2018, 22:00
newwebber,

JavaScript
1
if (((typeof($('#first_name').val()) != "undefined" && $('#first_name').val() !== null) && !($('#first_name').val())) || ((typeof($('input.first_name').val()) != "undefined" && $('input.first_name').val() !== null) && !($(this).find('input.first_name').val()) ) ){
к чему такие сложности?
0
0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 8
13.04.2018, 02:18  [ТС]
Спасибо большое!!! Попробовала на другом сайте. Все работает.
Осталось проверить на этом злосчастном (жду когда посетителей будет меньше) и будет всем счастье!!!

Добавлено через 3 часа 9 минут
Загрузила ваш скрипт вместо оригинального.

Работает!!!! и интересная штука, страницы где форма одна - все работает как обычно (код формы прежний),
а на странице, где 2 и более форм, сработало только при добавлении <input id="" name="" type="hidden" value="undefined"> в конце формы, который вы добавили в код формы.

СПАСИБО!!! Вы мой герой!!
0
1 / 1 / 1
Регистрация: 04.03.2015
Сообщений: 22
13.04.2018, 10:32
Это единственный способ, который я знаю, для проверки на существование переменной, аналог isset в php.
Я знаю, что способ далеко не элегантный.
Если знаете другой, подскажите, пожалуйста, на будущее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.04.2018, 10:32
Помогаю со студенческими работами здесь

Несколько форм на одной странице
Здравствуйте! Типа страницу регистрации, в которой есть две разные формы(для пациентов и врачей) разделенные nav-tab'ами. В зависимости...

Несколько форм на одной странице Yii2
Я добавляю 4 формы на страницу. Но получаю ошибку &quot;Call to a member function isAttributeRequired() on a non-object&quot;. Я так понимаю Yii...

Несколько однообразный форм на одной странице. Обработка
Опять буду надоедать людям)) Есть список чего-то. Пусть будет книг, например. Этот список выводится из модели Book. Для каждого поля...

Несколько форм обратной связи на одной странице
Всем доброго времени суток. Не могу настроить на лендинге несколько форм обратной связи. Одна работает при копировании кода, а другие...

Несколько форм html на одной странице и на один обработчик php
Всем привет! Если кто сможет помочь, буду очень признателен. Дело вот в чем: Есть страница сайта, на которой находится несколько форм...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru