Форма JQuery с проблемой сериализации recaptcha?

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

Вот как я сериализую свою форму:

var serializedform = $('form.af').serialize();

Вот мой пример формы:

<form class = 'af'>
    <input name='name' id = 'name'>
    <input name='lastname' id = 'lastname'>
        <div id = 'recaptchadiv'>
            <input name='recaptcha_response_field' id = 'recaptcha_response_field'>
            <input name='recaptcha_challenge_field' id = 'recaptcha_challenge_field'>
            <noscript>
                <input name='recaptcha_response_field' id = 'recaptcha_response_field'>
                <input name='recaptcha_challenge_field' id = 'recaptcha_challenge_field'>
            </noscript>
        </div>
    <button name = 'submit'>
</form>

проблема возникает из-за блока recaptcha noscript, введенного recaptcha автоматически. Этот блок содержит копию полей recaptcha_response_field и recaptcha_challenge_field.

Поэтому - когда я сериализую эту форму - значения из входов блока noscript перезаписывают реальные значения recaptcha_response_field и recaptcha_challenge_field.

Есть ли способ сериализации формы с использованием jquery при пропуске блока noscript?

Спасибо:)

2 ответа

Решение

Вы можете использовать jQuery для удаления <noscript> теги до того, как форма будет сериализована - очевидно, они не нужны к этому моменту. Что-то вроде этого:

var $form = $('form.af');
$form.find('noscript').remove();
var serializedform = $form.serialize();

Содержимое тегов noscript вообще не должно присутствовать в DOM, поэтому нет необходимости удалять их. Смотрите ДЕМО.

Вы уверены, что содержимое ваших тегов noscript будет сериализовано?

Другие вопросы по тегам