前言

在pc端的项目中,经常会用到表单标签,莫过于是select和input这两种,这两种相当常用。但往往原生的功能不尽人意,即使 input中type有n多属性,甚至连时间控件都有,但仍旧满足不了我们大天朝的需求,试问会有多少使用原生时间控件的人,也不会有几个,相信大部分的前端,亦或者是后端, 都有自己的插件小仓库。

需求的那些事

嗯……目前只限于input和select这两个标签


一个输入框到底能有些啥需求呢

  • 1、能够输入(最低的标准)
  • 2、能够输入并且能够本地校验(例如只能够输入数字,不能输入为空)
  • 3、能够输入并且能够本地校验并且能够给出相对应的提示
  • 4、能够输入并且能够本地校验和远程校验并且能够给出相对应的提示
  • …………

当然并不止这些需求,需求千奇百怪。
但像我们原生的标签最多满足上述两种要求。差不多就嗝屁了,剩下的便是八仙过海各显神通了。

说到这里,强推 jquery-validation这个插件,基本上建立基本的mvc项目,都会很友好的帮你安装好这个插件。剩下的就是等你调用了。

这是一个还不错的验证插件,不仅有前端验证,还有ajax远程验证。很不错

好吧,扯远了,想说的是除了上述的必备需求以外,还有些需求也是很常见的。比如点击输入框,会有个漂亮的时间插件。
这个也推荐一两个插件吧……bootstrap-datepicker,
bootstrap-daterangepicker

不过想说的仍旧不是这个,而是输入匹配出现下下拉框选择,如下图

恩……就是个这样的

源码如下:

 <!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Autocomplete - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function() {
var availableTags = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$( "#tags" ).autocomplete({
source: availableTags
});
} );
</script>
</head>
<body> <div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags">
</div> </body>
</html>

这里用的是一个叫做autocomplete的小插件。

jquery仍旧很强大

声明下,目前我们用的是.net mvc,在此之前,我合作的都是java的后台,前后端分离的。而最近这一年来,大致就是前端也写,c#也写,最大的感受便是如果都一个人来写一个项目的话,确实会少许多步骤,但毕竟一个人能够做的有限。 即使你足够全能,有很难有那么充实的精力。

顺带一提,我是es6语法和vue2,react,angular这种框架的忠实用户者,可惜我们用的是razor语法。并不是说不好,但就前端而言,上述那几个肯定更为强大和方便。

在这种情况下,面对层出不穷的需求,只能再次把目光投回了jquery。

在除了上述的那个需求以外,还有个需求也是我们经常用的,那就是select,对,你没有看出,就是select这个标签,这个标签到底承载着多事情呢,我们看看图就知道了

  • 1、首先得能够绑定远程数据吧
  • 2、要能够获取选中的回调了,不然你的联动基本没戏了

这里再说个对前端来说的深坑,那就是原生的select在ios系统和windows系统的表现样式差距很大,有兴趣的可以自己试试,所以原生的select标签几乎无用武之地。

而刚刚图中,所展示的功能,是一个名为 select2的一个插件

其实我觉得这个应该很有名了,毕竟20k的星摆在那里

而最上面的图,提到的那个输入能够匹配的是jquery的那个小插件,提到这里,不得不感叹姜还是老的辣。

当你进入jquery官网,你在下载最新的jquery之余,可以观察下 plugins,目测应该有几千个插件,而刚刚的autocomplete也是其中之一。

闲聊select和input常用的小插件的更多相关文章

  1. 【转】【iOS测试系列】常用测试小插件的使用

    背景介绍 由于iOS系统的限制,在非越狱的自动化测试中无法实现一些常用的功能,比如不同应用之间来回切换.模拟全局的点击事件等等.但是在越狱的环境下,这些限制就不存在了,我们可以利用各种小插件来实现我们 ...

  2. 【Bootstrap】优秀小插件收集

    Bootstrap中不乏很多优秀的小插件来让界面更加漂亮.比如之前做过笔记的bootstrap-fileinput,select2,datetimepicker等都是属于这一系列的.这些相对而言比较大 ...

  3. {Django基础十之Form和ModelForm组件}一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 ModelForm

    Django基础十之Form和ModelForm组件 本节目录 一 Form介绍 二 Form常用字段和插件 三 From所有内置字段 四 字段校验 五 Hook钩子方法 六 进阶补充 七 Model ...

  4. 开源Unity小插件CheatConsole

    我们在开发游戏的过程中,通常都需要一些快捷的方式来进行一些非常规的测试,这些功能一般被称作控制台或者GM指令,比如虚幻竞技场中,可以使用~键呼出控制台,输入一些指令即可进行快捷设置,比如设置分辨率,全 ...

  5. iScroll滚动区域中select、input、textarea元素无法点击的Bug修复

    最近在一个项目中使用了iScroll4模拟滚动效果,调试过程中发现一个表单页中的所有表单项都无法点击聚焦, 如<select>.<input>.<textarea> ...

  6. 网页设计师常用的PHOTOSHOP插件

    Photoshop是网页设计师常用的一个非常重要而强大的工具,可以让网页设计师的工作高效便捷的进行,也为设计师们的天马行空提供了实际技术实现.一般我们的网页设计师设计完成后,需要将其转换制作成网页形式 ...

  7. javascript常用的小知识

    1. oncontextmenu="window.event.returnvalue=false" 将彻底屏蔽鼠标右键 <table border oncontextmenu ...

  8. vue2.0结合Element实现select动态控制input禁用

    今天有一个盆友问小颖,怎么实现用select动态控制input禁用,也就是说,input默认是可编辑的,但是每当我选一次select,input就会变成禁用,虽然小颖不知道她为什么这样做,因为小颖觉得 ...

  9. WebSocket小插件

    一.WebSocket小介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信 ...

随机推荐

  1. SQL server学习(一)数据库的基本知识、基本操作(分离、脱机、收缩、备份、还原、附加)和基本语法

    在软件测试中,数据库是必备知识,共同探讨. 阅读目录 基本知识 数据库发展史 数据库名词 SQL组成 基本操作 登录数据库操作 数据库远程连接操作 数据库分离操作 数据库脱机.联机操作 数据库收缩操作 ...

  2. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  3. Python文件读写模式

    r 打开只读文件,该文件必须存在. r+ 打开可读写的文件,该文件必须存在.可读,可写,可追加. w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立该文件. w+ 打 ...

  4. 如何在linux下检测内存泄漏

    之前的文章应用 Valgrind 发现 Linux 程序的内存问题中介绍了利用Linux系统工具valgrind检测内存泄露的简单用法,本文实现了一个检测内存泄露的工具,包括了原理说明以及实现细节. ...

  5. Asp.net MVC4高级编程学习笔记-视图学习第三课Razor页面布局20171010

    Razor页面布局 1)  在布局模板页中使用@RenderBody标记来渲染主要内容.比如很多web页面说头部和尾部相同,中间内容部分使用@RenderBody来显示不同的页面内容. 2)  在布局 ...

  6. JQuery自定义插件详解之Banner图滚动插件

      前  言 JRedu JQuery是什么相信已经不需要详细介绍了.作为时下最火的JS库之一,JQuery将其"Write Less,Do More!"的口号发挥的极致.而帮助J ...

  7. android 屏幕适配基础(1)

    1. 概念定义 寸/英寸:   1寸=3.333333厘米:1英寸=2.54厘米(屏幕尺寸以英寸为单位) 像素 :    像素是组成图象的最基本单元要素:点. 一个像素有多大呢?主要取决于显示器的分辨 ...

  8. [js高手之路] 设计模式系列课程 - jQuery的extend插件机制

    这里在之前的文章[js高手之路] 设计模式系列课程 - jQuery的链式调用与灵活的构造函数基础上增加一个extend浅拷贝,可以为对象方便的扩展属性和方法, jquery的插件扩展机制,大致就是这 ...

  9. 查漏补缺系列之dapper初体验

    什么是dapper 在维护一些较老的项目的时候,往往我们会用很多sql那么这个时候我们要考虑优化这些项目的时候,我们就可以使用dapper dapper 是一款轻量级的ORM框架,它的优势很多轻量级, ...

  10. javascrip实现:若选中TreeView的父节点checkbox,则其子节点全部选中;子节点全部没选中,则父节点也会没选中。

    <script type="text/javascript"> function public_GetParentByTagName(element, tagName) ...