回覆列表
  • 1 # 使用者578843945334

    1、模板繼承。你對模板繼承的理解有偏差。模態框和觸發按鈕應該放在一起才能生效。你的觸發按鈕放在基模板的導航欄上,而模態框放在了login.html裡。雖然在login.html裡過載了基模板的login塊,但你渲染其他頁面(比如說index.html)的時候,並不會載入login.html的內容。

    2、全域性變數。因為大部分的頁面都要繼承基模板,所以form變數得是全域性可訪問的。我們可以使用g變數儲存form,這樣就不用在每一個視圖裡都例項化form物件。下面的函式生成了login_form變數,可以在基模板裡使用。

    渲染時,模板裡的<form>標籤的action屬性指向login檢視的URL,這樣可以在login檢視處理表單驗證。

    3、表單驗證。既然有表單,那麼就要考慮驗證的問題。從上面的截圖看,你沒有渲染錯誤資訊。另外,因為表單放在模態框裡,所以驗證沒透過的話,仍然要跳轉到模態框以便顯示錯誤資訊。但是Bootstrap的模態框沒法使用錨點開啟,也就是說直接訪問http://example.com#mymodal-login沒法開啟模態框。需要使用者再次點選按鈕才能看到錯誤資訊。

    基於上面的考慮,你有兩種選擇:

    1)使用支援錨點開啟的模態框外掛,比如Remodal。

    2)使用AJAX提交表單,接收並渲染錯誤資訊。

  • 中秋節和大豐收的關聯?
  • 家常羊肉滷子的做法怎麼做好吃又簡單,做?