Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.03.2015, 16:45
Новичок на форуме
Отправить личное сообщение для AlexNew Посмотреть профиль Найти все сообщения от AlexNew
 
Регистрация: 30.03.2015
Сообщений: 3

Почему работает только одна форма из двух?
Помогите, пожалуйста, сам я в javascript понимаю слабо. Сделал две аналогичных формы, запускаемых одним скриптом, кликами по разным ссылкам. По аналогии вот с этим: http://learn.javascript.ru/play/iyc7e

Но там обе формы работают как надо. У меня же во второй форме проверка телефона не происходит и данные не отправляются:
http://test.novgood.ru/

Но если из кода убрать первую форму : <div id="frmCallback1" ... </div>, то вторая начинает работать как надо:
http://test.novgood.ru/test.html

В чём тут дело??
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Тест</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script src="http://img.apishops.org/SinglePageWebsites/custom/js/apishopsForm.js"></script>
</head>
<body>

<a href="javascript:PopUpShow('1')">Форма 1</a> 

<a href="javascript:PopUpShow('2')">Форма 2</a>


<div id="frmCallback1" style="display:none">
    <div class="contentCallback">
    <img src="http://www.iconsearch.ru/uploads/icons/fatcow/32x32/cross.png" class="close">
        <p class="order_form">Форма 1</p>
        <div id="formContainer" style="overflow: hidden;">
            <form action="" method="post" id="formExample">
                <input type="hidden" name="apishopsFormCount" value="1">
                <input type="hidden" name="apishopsFormFio" value="тест" pattern=".{3,}" class="name">
                <label>Телефон </label>
                <input type="text" name="apishopsFormPhone" pattern=".{3,}" class="phone">
                <input type="hidden" id="placeMail" pattern=".{3,}" name="apishopsFormAddress" placeholder>
                <input type="submit" value="отправить" class="submit">
            </form>
        </div>
    </div>
</div>

<div id="frmCallback2" style="display:none">
    <div class="contentCallback">
    <img src="http://www.iconsearch.ru/uploads/icons/fatcow/32x32/cross.png" class="close">
        <p class="order_form">Форма 2</p>
        <div id="formContainer" style="overflow: hidden;">
            <form action="" method="post" id="formExample">
                <input type="hidden" name="apishopsFormCount" value="1">
                <input type="hidden" name="apishopsFormFio" value="тест" pattern=".{3,}" class="name">
                <label>Телефон </label>
                <input type="text" name="apishopsFormPhone" pattern=".{3,}" class="phone">
                <input type="hidden" id="placeMail" pattern=".{3,}" name="apishopsFormAddress" placeholder>
                <input type="submit" value="отправить" class="submit">
            </form>
        </div>
    </div>
</div>

</body>
</html>


<script type="text/javascript">
    $('[placeholder]').focus(function() {
        var input = $(this);
        if (input.val() == input.attr('placeholder')) {
            input.val('');
            input.removeClass('placeholder');
        }
    }).blur(function() {
        var input = $(this);
        if (input.val() == '' || input.val() == input.attr('placeholder')) {
            input.addClass('placeholder');
            input.val(input.attr('placeholder'));
        }
    }).blur();
    $('[placeholder]').parents('form').submit(function() {
        $(this).find('[placeholder]').each(function() {
            var input = $(this);
            if (input.val() == input.attr('placeholder')) {
                input.val('');
            }
        })
    });
    jQuery(document).ready(function() {
        $(".nav a").click(function(e) {
            e.preventDefault();
        });
    });
    $(".nav a").click(function() {
        var pagePos = $(document).scrollTop();
        var scrollTime = (pagePos - $($(this).attr('data-link')).offset().top) / 1.73;
        $("body,html").animate({
            "scrollTop": $($(this).attr('data-link')).offset().top - 80
        }, Math.abs(scrollTime));
    });

    function PopUpShow(popupId) {
        $("#frmCallback" + popupId).show();
    }

    function PopUpHide() {
        $("#frmCallback1").hide();
        $("#frmCallback2").hide();
    }

    function OKShow() {
        $("#frmOK").show();
    }

    function OKHide() {
        $("#frmOK").hide();
    }
    $(".close").click(function(event) {
        PopUpHide();
        OKHide();
    });
</script>

<script>
    $(function() {
        $('#formContainer').apishopsForm({
            type: 'inline',
            /*тип открытия [normal|light|jquery-selector]*/ form: $('#formExample'),
            /*тип формы [normal|light|jquery-selector]*/ siteId: 384811,
            productId: 385677,
            price: 0,
            lang: 1,
            priceRound: 0,
            wpId: 0
        });
        $('.fancybox').fancybox({
            fitToView: false,
            autoSize: false,
            width: 'auto',
            height: 'auto'
        });
    });
</script>

Последний раз редактировалось AlexNew, 31.03.2015 в 17:56.
Ответить с цитированием
  #2 (permalink)  
Старый 31.03.2015, 21:46
Профессор
Отправить личное сообщение для clecar Посмотреть профиль Найти все сообщения от clecar
 
Регистрация: 11.02.2015
Сообщений: 254

id="formExample" нельзя одинаковые в двух формах.
Ответить с цитированием
  #3 (permalink)  
Старый 01.04.2015, 00:31
Новичок на форуме
Отправить личное сообщение для AlexNew Посмотреть профиль Найти все сообщения от AlexNew
 
Регистрация: 30.03.2015
Сообщений: 3

Если переименовываю id, то вообще всё перестаёт работать. Как можно сделать, чтобы работало?
Ответить с цитированием
  #4 (permalink)  
Старый 01.04.2015, 08:09
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

<div id="formContainer" style="overflow: hidden;">
<form action="" method="post" id="formExample">

id не могут повторяться, они должны быть уникальны. Замените на:

<div class="formContainer" style="overflow: hidden;">
<form action="" method="post" class="formExample">


и в селекторах '#formContainer', '#formExample' на '.formContainer', '.formExample'
Ответить с цитированием
  #5 (permalink)  
Старый 02.04.2015, 17:11
Новичок на форуме
Отправить личное сообщение для AlexNew Посмотреть профиль Найти все сообщения от AlexNew
 
Регистрация: 30.03.2015
Сообщений: 3

Ок, спасибо
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает на jQuery 1.4.4? pro10026 jQuery 13 06.03.2014 10:22
Не могу понять, почему не работает автокомпил в IE 8 gargon2008 jQuery 0 07.06.2011 11:31
Почему то работает, то нет? gyunduz Общие вопросы Javascript 0 22.01.2011 16:08
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50
Почему это работает? (инклуд JS в JS) Василий Б. Общие вопросы Javascript 4 11.06.2010 12:41