文章詳情頁
javascript - 表單中輸入框值遠程合法性驗證問題
瀏覽:96日期:2023-02-17 15:59:09
問題描述
1.問題是這樣的,有一個輸入框,我想在onBlur時機去驗證該值在數據庫中是否已經存在,就像我們平時注冊郵箱的時候會實時提示該郵箱名稱是否已經被使用。之前在jquery時代可以是指ajax請求為同步。但是,在antd+dva框架中請求都是通過dispatch發起的,在這種情況下該如何實現呢?
問題解答
回答1:你可能還沒有完全搞清楚 Redux 相關的一些概念。
dispatch 發起的并不是請求,而是一個更改全局狀態的 Action。只不過最常見的更改數據狀態 Action 的場景是【發送異步網絡請求】,這并不代表請求必須 dispatch,也不代表 dispatch 必須在異步場景下使用。
具體到你的這個問題,一個輸入框的狀態顯然是非常局部的,顯然【在一般情境下】與頁面其它部分的狀態沒有耦合。那么這時,你完全可以不走 Dva 封裝的 Redux 那一套,而是自己封裝一個基于 fetch / axios / $.ajax 的模塊,專門提供給你這個輸入框組件使用。
最后,同步 Ajax 是糟糕的做法,建議封裝異步請求為 Promise。
回答2:@ewind 的回復正解其實我之前一直疑惑的原因在于不知道antd框架form組件validateFields方法會自動對異步操作進行阻塞,總想著異步驗證沒返回之前表單已提交的。
標簽:
JavaScript
相關文章:
1. 數組按鍵值封裝!2. angular.js - webpack build后的angularjs路由跳轉問題3. java - web項目中,用戶登陸信息存儲在session中好 還是cookie中好,取決于什么?4. 老師,怎么不講一次性添加多個數據5. mysql - 查詢字段做了索引為什么不起效,還有查詢一個月的時候數據都是全部出來的,如果分拆3次的話就沒問題,為什么呢。6. mysql - 大部分數據沒有行溢出的text字段是否需要拆表7. pdo - mysql 簡單注入疑問8. Mysql取下一條記錄9. python - linux 下用wsgifunc 運行web.py該如何修改代碼10. 表格對其 只涉及到對其,沒有涉及到大小,長寬還有背景色類的嗎
排行榜
