久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

解決Django中checkbox復(fù)選框的傳值問題

瀏覽:2日期:2024-10-14 15:41:20

Django 中,html 頁面通過 form 標(biāo)簽來傳遞表單數(shù)據(jù)。

對(duì)于復(fù)選框信息,即 checkbox 類型,點(diǎn)擊 submit 后,數(shù)據(jù)將提交至 view 中的函數(shù)。

我們通過request.POST.get() 函數(shù)來獲取來自 html 頁面的值,但是該函數(shù)只能 get 到選中的最后一個(gè)值。

因此想要傳遞選中的多個(gè)值,需要用 request.POST.getlist() 函數(shù)

該函數(shù)返回一個(gè)列表,可通過迭代來獲取列表中每一項(xiàng)的值。

補(bǔ)充知識(shí):解決checkbox復(fù)選框選中傳值,不選中不傳值的方案

解決checkbox復(fù)選框選中傳值,不選中不傳值的方案

問題描述:

一個(gè)form表單中的結(jié)構(gòu)是這樣的:

解決Django中checkbox復(fù)選框的傳值問題

則頁面顯示結(jié)果是:

解決Django中checkbox復(fù)選框的傳值問題

如上填寫數(shù)據(jù),經(jīng)過序列化后的數(shù)據(jù)是:

[{'id':'1','infoType':'11','infoName':'名稱1','fileIsOpen':'o'},{'id':'2','infoType':'12','infoName':'名稱2','fileIsOpen':'n'}]

從數(shù)據(jù)中明顯看書fileIsOpen字段的checkbox復(fù)選框選中則傳值是'o',未被選中則傳值是'n',其中這是錯(cuò)誤的數(shù)據(jù),因?yàn)楸贿x中傳的值是on,也就是說checkbox復(fù)選框選中傳值,不選中不傳值。那么怎么解決不選中也傳值的問題呢?

解決方案:

我們可以設(shè)置隱藏域來代替checkbox復(fù)選框傳遞數(shù)據(jù),具體的頁面修改如下:

解決Django中checkbox復(fù)選框的傳值問題

checkbox復(fù)選框?qū)?yīng)的點(diǎn)擊事件:

解決Django中checkbox復(fù)選框的傳值問題

再次輸入相同的數(shù)據(jù)傳遞的數(shù)據(jù)是:

[{'id':'1','infoType':'11','infoName':'名稱1','fileIsOpen':'0'},{'id':'2','infoType':'22','infoName':'名稱2','fileIsOpen':'1'}]

從數(shù)據(jù)可以這次傳遞的數(shù)據(jù)是正確的

上述方案存在的問題

如果頁面什么不傳遞,

解決Django中checkbox復(fù)選框的傳值問題

則傳遞的數(shù)據(jù)是這樣的:

[{'fileIsOpen':'0'},{'fileIsOpen':'0'}]

因此后臺(tái)在接受到數(shù)據(jù)后需要判斷List集合中的對(duì)象的必選要素,如果不包含必傳要素,就算傳入上述數(shù)據(jù)也是不錄入數(shù)據(jù)庫的數(shù)據(jù),則可以舍去這些數(shù)據(jù)。

以上這篇解決Django中checkbox復(fù)選框的傳值問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 扎囊县| 宝坻区| 宁城县| 温宿县| 新野县| 文山县| 泌阳县| 青州市| 仪征市| 无极县| 金秀| 卓尼县| 仙桃市| 南康市| 油尖旺区| 读书| 南昌市| 榆树市| 郑州市| 哈巴河县| 峡江县| 云安县| 平安县| 灵寿县| 鄂伦春自治旗| 巴塘县| 桓仁| 台南市| 水富县| 乌鲁木齐县| 乌鲁木齐市| 托克托县| 巴彦县| 民和| 嘉荫县| 体育| 合作市| 汶川县| 盐城市| 普兰店市| 白水县|