2017-04-23 61 views
0

如果表单提交有效或无效,我会尝试显示提醒。
在视图中,我有一个隐藏的输入,如果表单有效或没有更改值。在表单提交后显示JavaScript提醒 - Django

我有这个JavaScript:

$(document).ready(function() { 
    if (document.registroForm.alert.value==1){ 
    swal("¡Bien hecho!", "El registro fue exitoso.", "success") 
    } 
    if (document.registroForm.alert.value==0){ 
    swal("¡Oops!", "Algo salió mal.", "error") 
    } 
}); 

的问题是,我得到我每次刷新页面时的警报。
而我只是想在用户提交表单和页面刷新时做到这一点

谢谢。

问题解决了。

我所做的是在页面加载时将变量“alert”设置为None。该表格后提交的变化:由

<form method="POST" action="."> 
[... some labels and inputs ...] 
<input type="hidden" name="alert" value="{{alert}}" readonly> 
</form> 
<script> 
$(document).ready(function() { 
    if (document.registroForm.alert.value==1){ 
    swal("¡Bien hecho!", "El registro fue exitoso.", "success") 
    } 
    if (document.registroForm.alert.value==0){ 
    swal("¡Oops!", "Algo salió mal.", "error") 
    } 
}); 
</script> 

感谢: (我修改这个对我的views.py)

views.py

def registroUsuario(request): 
    if request.method == "POST": 
     form = registroForm(request.POST or None) 
     if form.is_valid(): 
      alert = 1 
      instance = form.save(commit=False) 
      instance.is_active = False 
      instance.save() 
     else: 
      alert = 0 
    else: 
     alert = None 
     form = registroForm() 
    context = { 
     "titulo": "Registrarse", 
     "form": form, 
     "alert": alert, 
    } 
    template = "micuenta/registro.html" 
    return render(request, template, context) 

我的.html办法。

+0

你是如何刷新页面的?作为获取或发布? – Bindrid

+0

作为POST方法。 –

+0

由于数据与隐藏值一起发布,因此它会保留该值。也许尝试刷新页面作为get。 – Bindrid

回答