Я использую модальную форму для регистрации в Django. Я хочу, чтобы входные данные проверялись, а форма обновлялась, чтобы указать, что либо регистрация была успешной, либо жаловаться на то, какой вход отсутствует или некорректен. Насколько я могу судить по коду, с которым я работаю, этот формат был бы правильным, если бы я использовал обычную страницу, но это не работает с модальным. Когда я нажимаю кнопку, материал определенно становится подтвержденным за кулисами (и база данных обновляется, так что все это хорошо), но ничего не отправляется обратно на страницу в конце.Освежающий модальный форма обратной связи
@requires_csrf_token
def signup(request):
error, success = '', ''
recap = request.POST.get('g-recaptcha-response')
[ETC]
if request.method == 'POST':
[CHECKING INPUTS]
if not error:
[OTHER STUFF]
success = "SUCCESS MESSASGE"
return render(request, 'signup_modal.html',
{ 'firstname': firstname,
'lastname': lastname,
'email': email,
'phone': phone,
'error': error,
'success': success})
Я предполагаю, что проблема здесь, в конце, с битом запроса рендеринга.
Большое спасибо.
ETA:
Javascript:
<script type="text/javascript">
$(function() {
$(".submit-signup").on("click", function() {
var data = $("#signup-form").serialize();
$.post("/signup/", data, function() {
});
});
});
</script>
Response Tab:
<form id="signup-form">
<input id="id_firstname" type="text" name="firstname" placeholder="First name"
value="firstname" >
<input id="id_lastname" type="text" name="lastname" placeholder="Last name"
value="lastname" >
<input id = "id_email" type="email" name="email" placeholder="e-mail"
value="[email protected]" >
<input id="id_password" type="password" name="password" placeholder="Password">
<input id="id_password_repeat" type="password" name="password_repeat" placeholder="Repeat password">
<div class="g-recaptcha" data-sitekey="KEY"></div>
<p class="success-message"> </p>
<p class="error-message"> Couldn't verify reCAPTCHA. Refresh the page and try again? </p>
<button type="button" class="submit-signup">Sign up</button>
</div>
</form>
Попробуйте распечатать переменные успеха/ошибки, вы получаете что-нибудь? Проверьте консоль python, каков код состояния при отправке формы? Что-нибудь? – Aakash
Да, успех и/или ошибка получат ожидаемые значения. Консоль говорит «« POST/signup/HTTP/1.1 »200 1897», когда я нажимаю кнопку. – ballardjw2
Итак, что именно вы хотите сделать, если все будет так, как ожидалось? Что вы подразумеваете под «ничего не отправляется обратно на страницу в конце»? – Aakash