Форма JQuery получить из значения поля - PullRequest
3 голосов
/ 27 октября 2011

Я использую форму Jquery на моем сайте.Оператор from довольно прост с обычными полями (name, email, dob и т. Д.).После того, как пользователь нажмет кнопку регистрации, форма отправляется в php-файл с помощью параметра Jquery из параметра «ajaxForm».После этого форма выдвигается, а карта Google проскальзывает, предлагая клиенту выбрать его текущее местоположение, перетаскивая маркер на карте.

После того, как маркер установлен в нужном месте, клиент может нажать «Отправить»Кнопка и 2 значения будут переданы в другой файл php: широта и долгота, то есть координаты.(обратите внимание, что страница не обновляется в любое время, все это происходит на одной странице.)

Я хочу передать значение поля электронной почты из предыдущей формы вместе с широтой и долготой, но яЯ не могу этого сделать, потому что я в значительной степени новичок в javascript.

Есть ли способ объявить глобальную переменную из поля 'email' перед отправкой формы, чтобы позже я мог использовать ее дляпередать вместе с параметрами широты и долготы.Или, может быть, есть даже более простое решение?

Большое спасибо заранее!

вот код моей формы jquery

$(document).ready(function() {
var options = {
    target: '#total',
    clearForm: true,
    beforeSubmit: radio,
    success: social1
};
$("#perm").ajaxForm(options);

}); 
function radio(formData, jqForm, options) {

    if ($('input:radio').is(':checked')) {

} else {
    alert('choose gender!');
    return false;
}

var form = jqForm[0];

        if (form.year.value <= form.yob.value) { 
        alert('choose another year!'); 
        return false; 
    }

};




function social1() {  
            $("#map").delay(700).slideDown("slow");
            $("#accordion").slideUp("slow");
            };

А вот код кнопки

<form id='perm' action='add.php?stay=perm' method='post' onSubmit="return checkForm(this);">

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Вы уже используете метод beforeSubmit. Расширьте это немного. Это хорошее место, чтобы поймать адрес электронной почты. Таким образом, вы в конечном итоге в такой ситуации (без проверки):

var email;
$(document).ready(function() {
var options = {
    target: '#total',
    clearForm: true,
    beforeSubmit: radio,
    success: social1
};
$("#perm").ajaxForm(options);

}); 
function radio(formData, jqForm, options) {
   email = $("#idOfEmailField").val();
   // ... rest of logic here
};
function social1() {  
   alert("Email address is "+email);
};
0 голосов
/ 27 октября 2011

Если вы просто скрываете форму, не обновляя страницу, ввод электронной почты из предыдущей формы все еще доступен (т.е. вам не нужно объявлять глобальную переменную для хранения электронной почты).Например,

<form id='perm' action='add.php?stay=perm' method='post'>
    ...
    <input type="text" id="name" />
    <input type="text" id="email" />
    <input type="submit" value="Submit" />
    ...
</form>

<button id='submitCoordinate_button' style='display:none'>Submit coordinate</button>

<script type="text/javascript">
    $('#perm').ajaxForm() {
        ...
        success: function() {
            $('#perm').hide(); // hide the perm form and pull the map in 
            $('#submitCoordinate_button').show();
        },
        ...
    }

    $('#submitCoordinate_button').click(function () {
        ...
        var email = $('#email').val(); // you still can get the email here
        ...
    });
</script>
...