Каковы методы проверки формы изнутри? - PullRequest
0 голосов
/ 14 сентября 2010

Хорошо, у меня есть форма внутри shadowbox, эта вещь просто не будет проверяться ... Я пробовал миллион разных способов. Это также живет в Теме Wordpress, которая, я не думаю, ломает это. Jquery загружается в шапку.

форма вставлена ​​в суть: http://gist.github.com/578270

Есть идеи? Большое спасибо, чувствую, что я бьюсь головой о стену.

1 Ответ

0 голосов
/ 01 марта 2011

Хитрость заключается в том, чтобы использовать функцию обратного вызова onFinish для запуска проверки формы, находящейся внутри Shadowbox.Если вы используете идентификатор для своей формы, как я, shadowbox фактически создаст дубликат копии формы, поэтому вам нужно настроить таргетинг на форму внутри самого shadowbox.Для этого я использовал # sb-player .

HTML Shadowbox Link

<a href="#newsletter-signup-wrapper" class="newsletter-signup UniversLTStd-Cn">Newsletter Sign-up</a>

JavaScript / jQuery

$('a.newsletter-signup').click(function(){
    Shadowbox.open({
        width: 562,
        height: 395,
        player: 'inline',
        content: this.href,
        options: {
            onFinish: function(){
                $('#sb-player #newsletter-signup-form').validate();
            }
        }
    });
    return false;
});

HTML-форма (скрыто в нижнем колонтитуле)

<div id="newsletter-signup-wrapper">
    <div id="newsletter-signup">
        <form action="" id="newsletter-signup-form" target="_parent" method="POST">
            <div class="gform_body">
                <ul class="gform_fields">
                    <li class="gfield">
                        <label class="gfield_label" for="first_name">First Name <span class="gfield_required">*</span></label>
                        <div class="ginput_container">
                            <input class="medium required" id="first_name" maxlength="40" name="first_name" size="20" type="text" />
                        </div>
                    </li>
                    <li class="gfield">
                        <label class="gfield_label" for="last_name">Last Name <span class="gfield_required">*</span></label>
                        <div class="ginput_container">
                            <input class="medium required" id="last_name" maxlength="80" name="last_name" size="20" type="text" />
                        </div>
                    </li>
                    <li class="gfield">
                        <label class="gfield_label" for="email">Email <span class="gfield_required">*</span></label>
                        <div class="ginput_container">
                            <input class="medium required" id="email" maxlength="80" name="email" size="20" type="text" />
                        </div>
                    </li>
                    <li class="gfield">
                        <label class="gfield_label" for="company">Company <span class="gfield_required">*</span></label>
                        <div class="ginput_container">
                            <input class="medium required" id="company" maxlength="40" name="company" size="20" type="text" />
                        </div>
                    </li>
                </ul>
            </div>
            <div class="gform_footer">
                <input class="button" type="submit" name="submit" value="Sign-up!">
            </div>
        </form>
    </div>
</div><!--// end #newsletter-signup-wrapper -->

Надеюсь, это поможет, я с удовольствием объясню более подробноесли нужно.

...