閒聊select和input經常使用的小插件

前言

在pc端的項目中,常常會用到表單標籤,莫過因而select和input這兩種,這兩種至關經常使用。但每每原生的功能不盡人意,即便 input中type有n多屬性,甚至連時間控件都有,但仍舊知足不了咱們大天朝的需求,試問會有多少使用原生時間控件的人,也不會有幾個,相信大部分的前端,亦或者是後端, 都有本身的插件小倉庫。

需求的那些事

嗯……目前只限於input和select這兩個標籤css


一個輸入框到底能有些啥需求呢html

  • 一、可以輸入(最低的標準)
  • 二、可以輸入而且可以本地校驗(例如只可以輸入數字,不能輸入爲空)
  • 三、可以輸入而且可以本地校驗而且可以給出相對應的提示
  • 四、可以輸入而且可以本地校驗和遠程校驗而且可以給出相對應的提示
  • …………

固然並不止這些需求,需求千奇百怪。
但像咱們原生的標籤最多知足上述兩種要求。差很少就嗝屁了,剩下的即是八仙過海各顯神通了。前端

說到這裏,強推 jquery-validation這個插件,基本上創建基本的mvc項目,都會很友好的幫你安裝好這個插件。剩下的就是等你調用了。vue

這是一個還不錯的驗證插件,不只有前端驗證,還有ajax遠程驗證。很不錯java

好吧,扯遠了,想說的是除了上述的必備需求之外,還有些需求也是很常見的。好比點擊輸入框,會有個漂亮的時間插件。 這個也推薦一兩個插件吧……bootstrap-datepicker, bootstrap-daterangepicker react

不過想說的仍舊不是這個,而是輸入匹配出現下下拉框選擇,以下圖jquery

恩……就是個這樣的ios

 

 

源碼以下:git

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4   <meta charset="utf-8">
 5   <meta name="viewport" content="width=device-width, initial-scale=1">
 6   <title>jQuery UI Autocomplete - Default functionality</title>
 7   <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
 8   <link rel="stylesheet" href="/resources/demos/style.css">
 9   <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
10   <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
11   <script>
12   $( function() {
13     var availableTags = [
14       "ActionScript",
15       "AppleScript",
16       "Asp",
17       "BASIC",
18       "C",
19       "C++",
20       "Clojure",
21       "COBOL",
22       "ColdFusion",
23       "Erlang",
24       "Fortran",
25       "Groovy",
26       "Haskell",
27       "Java",
28       "JavaScript",
29       "Lisp",
30       "Perl",
31       "PHP",
32       "Python",
33       "Ruby",
34       "Scala",
35       "Scheme"
36     ];
37     $( "#tags" ).autocomplete({
38       source: availableTags
39     });
40   } );
41   </script>
42 </head>
43 <body>
44  
45 <div class="ui-widget">
46   <label for="tags">Tags: </label>
47   <input id="tags">
48 </div>
49  
50  
51 </body>
52 </html>

 

 這裏用的是一個叫作autocomplete的小插件。es6

jquery仍舊很強大

聲明下,目前咱們用的是.net mvc,在此以前,我合做的都是java的後臺,先後端分離的。而最近這一年來,大體就是前端也寫,c#也寫,最大的感覺即是若是都一我的來寫一個項目的話,確實會少量多步驟,但畢竟一我的可以作的有限。 即便你足夠全能,有很難有那麼充實的精力。

順帶一提,我是es6語法和vue2,react,angular這種框架的忠實用戶者,惋惜咱們用的是razor語法。並非說很差,但就前端而言,上述那幾個確定更爲強大和方便。

在這種狀況下,面對層出不窮的需求,只能再次把目光投回了jquery。

在除了上述的那個需求之外,還有個需求也是咱們常常用的,那就是select,對,你沒有看出,就是select這個標籤,這個標籤到底承載着多事情呢,咱們看看圖就知道了

  • 一、首先得可以綁定遠程數據吧
  • 二、要可以獲取選中的回調了,否則你的聯動基本沒戲了
  •  

這裏再說個對前端來講的深坑,那就是原生的select在ios系統和windows系統的表現樣式差距很大,有興趣的能夠本身試試,因此原生的select標籤幾乎無用武之地。

而剛剛圖中,所展現的功能,是一個名爲 select2的一個插件 

其實我以爲這個應該頗有名了,畢竟20k的星擺在那裏

而最上面的圖,提到的那個輸入可以匹配的是jquery的那個小插件,提到這裏,不得不感嘆姜仍是老的辣。

當你進入jquery官網,你在下載最新的jquery之餘,能夠觀察下 plugins,目測應該有幾千個插件,而剛剛的autocomplete也是其中之一。

相關文章
相關標籤/搜索