2017-04-23 91 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

回答