Я не понимаю, почему это перенаправление происходит в основном в моем html. У меня есть поле textinput с id id_location, форма с идентификатором user_form и кнопка отправки для формы с id submit_form, то, что я пытаюсь сделать, это зарегистрировать пользователя и захватить его адрес, а затем использовать геокодирование, чтобы получить координаты на карте и установить значения двух скрытых полей ввода для долготы и широты местоположения пользователей с идентификаторами id_longitude и id_latitude соответственно и, наконец, отправить формуПереадресация на форму submit в jjjqo javascript (jquery)
на заднем плане они перенаправлены на главную страницу, теперь вот проблема, когда я отправляю форму, я перенаправляюсь на URL-адрес с местоположением, которое я заполнил в поле местоположения в форме в конце, так, например, если i заполнить в Лондоне я получаю это
localhost:8000/signup/London
и форма dosen't представить на внутреннем интерфейсе (я проверил Джанго-администратора для пользователей и я ничего нового не вижу)
я пытался положить оповещения в стратегических местах в javascript-коде, но предупреждение появляется и перенаправляется, прежде чем я даже могу его прочитать, я действительно не знаю, связано ли это с django или javascript, который я написал, но я считаю, что это из-за javascript но я могу предоставить больше информации о моих моделях и представлениях django, но в основном в django я использовал поле «один к одному», чтобы получить дополнительную информацию от пользователя и расширил UserCreationForm
$('#submit_form').on('click', function(e){
e.preventDefault();
var getlocation = $('#id_location').val();
$.getJSON('https://maps.googleapis.com/maps/api/geocode/json?key=API_KEY&address='+getlocation+'&sensor=false', function(results){
if (results.status == 'OK'){
var latitude = results.results[0].geometry.location.lat;
var longitude = results.results[0].geometry.location.lng;
$('#id_latitude').val(latitude);
$('#id_longitude').val(longitude);
alert('say something before submission');
$('#user_form').submit();
}
});
});
Я также запустить мой JavaScript через яваскрипта ворсинок, чтобы проверить на наличие ошибок синтаксиса, но нет ни
также это лучший способ, чтобы остановить форму от представления и изменять значения в форме перед подачей без использования Ajax?
UPDATE после публикации моего ответа, я исправил некоторые из моих опечаток, но теперь форма dosen't даже представить
у вас есть опечатка в $ getJSON должна быть $ .getJSON Я предполагаю, что это результат вас копирование и вставка в SO –
также вы вызываете submit(), это приведет к обновлению страницы. Зачем вам это нужно. точка jquery ajax состоит в том, чтобы избежать обновления страниц и т. д. ... вы просто вызываете свой метод и делаете что-то с ответом. –
Оказывается, опечатка была там, но после ее исправления я все равно получаю такое же поведение (я думал, что я снова был спасен SO). – danidee