使用者在網頁上進行表單填寫時,有可能出現某項填寫錯誤。一般情況下,使用者在未發覺錯誤的情況下點選提交,則此表單的內容會清空,使用者不得不再重新填寫,這樣的使用者體驗是及其糟糕的。
在此,我們有2種方法將使用者的輸入儲存下來,一旦填寫錯誤,只需要將錯誤項修改即可重新提交。
5#form驗證
6class
testform(form):
7 inp1 = fields.charfield(min_length=4, max_length=8)
8 inp2 = fields.emailfield()
9 inp3 = fields.integerfield(min_value=10, max_value=100)
101112#
測試函式
提交成功')
21return render(request, '
test.html
', )
2. test.html
1doctype html
>
2<
html
lang
="en"
>
3<
head
>
4<
meta
charset
="utf-8"
>
5<
title
>title
title
>
6head
>
7<
body
>
8<
form
action
="/test/"
method
="post" novalidate
>910
<
p>輸入1} }
p>
11<
p>輸入2} }
p>
12<
p>輸入3} }
p>
13<
input
type
="submit"
value
="提交"
>
14form
>
15body
>
16html
>
novalidate遮蔽瀏覽器提供的表單驗證功能說明:若使用者輸入不符合自定義的form規則,則會返回obj = testform(request.post),重新渲染test.html,而此時,obj中包含了上次使用者輸入的所有內容。
效果:提交之後出現錯誤提示,但使用者輸入的資料依然存在
ajax提交資料雖然不重新整理網頁,但是無法完成使用者輸入驗證,還須借助form返回給其驗證資訊
#form驗證
p>輸入1 <
input
type
="text"
name
="inp1"
>
p>
11<
p>輸入2 <
input
type
="text"
name
="inp2"
>
p>
12<
p>輸入3 <
input
type
="text"
name
="inp3"
>
p>
13<
input
type
="button"
onclick
="ajax_submit();"
value
="提交"
>
14form
>
15body
>
16<
script
src="/static/jquery-3.2.1.js"
>
script
>
17<
script
>
18function
ajax_submit()
20$(
".c1
").remove();
21$.ajax(
else)37
}38}39
})40}41
script
>
42html
>
說明:若使用者輸入不符合form規則,ajax獲取錯誤資訊,並動態新增錯誤資訊至span標籤,提示使用者
效果:
在Sql Server中 保留幾位小數的兩種做法
資料庫裡的 float momey 型別,都會精確到多位小數。但有時候 我們不需要那麼精確,例如,只精確到兩位有效數字。使用 round 函式,如 round num,2 引數 2 表示 保留兩位有效數字。更好的方法是使用 convert decimal 18,2 num 實現轉換,decimal ...
兩種if判斷
上海面試三 下面是c語言中兩種if語句判斷方式。請問哪種寫法更好?為什麼?int a if a1 第一種判斷方式 if 1a 第二判斷方式 答 這是個主觀題,不過多數人認為第二種好。從執行效率上講,第二種效率更高。另外,在編寫 時如果不小心將 寫成 即變成 1 a 這時編譯器將會給出錯誤提示。而如果...
mysql的兩種引擎 mysql的兩種儲存引擎
背景 最近在使用spring data jpa操作mysql,在使用jpa的自動建表功能之後,處理多對多關係 manytomany的時候,spring data jpa會給中間表的兩個欄位都加上外來鍵引用。當前使用的版本預設的資料庫儲存引擎為myisam。這種儲存引擎是為資料庫查詢效能而生的,不支援...