無可奈何的開始了jquery的“奇淫技巧”

来源:https://www.cnblogs.com/zhiyong-ITNote/archive/2018/07/20/9344603.html
-Advertisement-
Play Games

轉載請註明出處: https://home.cnblogs.com/u/zhiyong-ITNote/ 修改一個已有的項目,主要是前端方面,一般的項目後端都是處理好了的,不需要改也不能改,除非特殊需求。然後就遇到了牛逼的代碼。本來看別人已有的代碼做開發就是一件很頭疼的事,一個函數一個方法一個屬性的找 ...


轉載請註明出處: https://home.cnblogs.com/u/zhiyong-ITNote/

修改一個已有的項目,主要是前端方面,一般的項目後端都是處理好了的,不需要改也不能改,除非特殊需求。然後就遇到了牛逼的代碼。本來看別人已有的代碼做開發就是一件很頭疼的事,一個函數一個方法一個屬性的找,眼睛疼....然後今天改代碼還特別頭疼,大概說說:
首先不能使用jquery-ui的自動補全插件,換句說話,所有的第三方模糊匹配/自動補全插件都不能用,但是給我懵的。ajax將請求post到C#後端隨後獲取數據,傳到前端之後,一大串的數據,需要你在一個文本框中邊檢索邊做模糊匹配,本來很好解決的一個事,直接使用jquery-ui的autocomplete就行,但是不行,就不讓,我有啥辦法,然後就自己想轍解決問題。沒有特定的環境,我們就不會有對應的解決方法,更不會嘗試去解決,最後解決它。我的方法是,監聽input標簽的寫入事件,然後獲取寫入的值,將值與從後臺獲取到的數據進行匹配,匹配成功,再動態生成div以下拉列表的形式填充到輸入框下麵。但是遇到個問題,input框檢索的是Name欄位,不是一個字元串而是字元,就是我們的string類型——"hello world"之類的。那麼應該怎麼解決呢?我想到了數據結構書上的字元串匹配演算法KMP,於是查了下jquery的匹配方法,果然有一個match,這就可以給我們解決問題了。通過這兩個解決方案就可自定義的創建自動補全了。


還有一個問題,那就是input標簽的placeholder屬性需要實時變換,明明這個屬性就支持你寫入Input它就消失,你不寫入它就存在。可以由於項目的已有代碼問題,我實在是被坑的沒轍,又不能改,只能加,然後就想對應的解決方法。我的解決方案是監控div:
一開始,div下嵌套著input,在input中寫入的時候,就會產生上面我們的自動補全下拉框(其實就是一個動態的div),一旦我們選中了一個下拉框的元素,那麼會在該div下生成一個span標簽,也就是說,input的placeholder屬性的值還存在,這代碼設計....坑的是後來人....然後我該怎麼解決?監控div就行。如果div下生成了一個span標簽那麼我們就是將input的placeholder設置為''.否則就設置為'必填欄位'。代碼拷貝不出來,因為在公司內網機上....

參考資料:
監聽div的內容 
字元的模糊匹配 
查找span標簽是否存在 
動態添加div,及其顯示與隱藏
input標簽監聽寫入 

根據參考資料就可以實現我上面說的那些了,具體請看具體分析。

 

轉載請註明出處: https://home.cnblogs.com/u/zhiyong-ITNote/


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、Keychain 淺析 2、iOS的密碼管理系統 Keychain的介紹和使用 ...
  • Quartz2D學習(1) 本文以問答形式主要講述Quartz2D的相關內容,參考內容是網上下載的學習視頻資料。 1、什麼是Quartz2D? 他是一個二維的繪圖引擎,同時支持iOS和Mac系統 2、Quartz2D能完成的工作 畫基本線條,繪製文字,圖片,截圖,自定義UIView. 3、Quart ...
  • 在模塊的build.gradle裡面添加了 Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:design:26.1.0.Open FileSho ...
  • 用git 遠程獲取指定分支的代碼 ...
  • 作為開發,有一個自己的飯碗還是有必要的。因為交接舊電腦的時候,你會遇到了一些問題,而自己的電腦就方便很多了。 要開發,當然要裝一些與開發相關的東西,那麼新電腦入手,要做些什麼呢? 1.安裝Xcode;(代碼可以不會寫,這個不能不會裝) 2.安裝CocoaPods,點我; 4.代碼管理工具SVN or ...
  • iOS標識符 現今來比較下,不同情況下兩種標識符的變化情況。以下試驗,每種標識符均分為存於Keychain和未存於Keychain的兩種情況做比較。 廣告標識符(IDFA-identifierForIdentifier),是AdSupport.framework裡面的。可以通過ASIdentifie ...
  • 使用jquery的ajax方法向伺服器發送請求的時候,常常需要使用到error函數進行錯誤信息的處理,本文詳細說明瞭ajax中error函數和函數中各個參數的用法。 一般error函數返回的參數有三個:function(jqXHR jqXHR, String textStatus, String e ...
  • 一、精靈圖使用場景: 二、Css Sprite(優點) 減少圖片的位元組。 減少網頁的http請求,從而大大的提高頁面的性能。 解決了網頁設計師在圖片命名上的困擾,只需對一張集合的圖片上命名就可以了,不需要對每一個小元素進行命名,從而提高了網頁的製作效率。 更換風格方便,只需要在一張或少張圖片上修改圖 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...