JQuery操作DOM,JQuery动画,Bootstrap入门
1.JQuery操作DOM元素
jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。
DOM对象和JQuery对象的相互转换:
•使用$把JS对象转换成jQuery对象:
–$(dom)转成jQuery对象;
•使用下标[n]或get(n)方法把jQuery对象转换成JS的DOM节点对象(这些都是dom对象,可以使用dom中的方法,但不能再使用Jquery的方法):
–$(dom)[0];
–$(dom).get(0);
JQuery对DOM做了封装,所以dom对象和jquery对象是不同的
1.1 获得DOM节点
获得元素节点:
即通过选择器来获得
获得文本节点:
三个简单实用的用于 DOM 操作的 jQuery 方法:
- 
text() - 设置或返回所选元素的文本内容
 
text()只输出标签内的文本内容,和js的innerText方法一样
- 
html() - 设置或返回所选元素的内容(包括 HTML 标记)
 
打印当前标签内的文本内容,如果有子标签,则把子标签本身和子标签内的文本一起打印
这个和js的innerHTML差不多
- 
val() - 设置或返回表单字段的值
 
元素的值是通过 value 属性设置的。该方法大多用于 input 元素。
获得属性节点:
利用JQuery选择器查找到需要的元素之后,就 可以使用attr()方法来获取它的各种属性的值。attr()方法的参数可以是一个,也可以是两个。当参数是一个时,则是要查询的属性的名字
例如:获取属性节点并打印出它的标题,JQuery代码如下:
var $para = $(".nm_p");         // 获取<p>节点
var p_txt = $para.attr("title"); // 输出<p>元素节点属性title
获得父节点:
$(selector).parent(selector):获取父节点
$(selector).parents(selector):获取祖先元素
获得兄弟节点:
$(selector).prev() / $(selector).previousSibling():获取上一个兄弟节点
$(selector).prevAll():获取之前所用的兄弟节点
$(selector).next() / $(selector).nextSibling():获取下一个兄弟节点
$(selector).nextAll():获取之后所有的兄弟节点
$(selector).siblings():获取所有的兄弟节点
获得子节点:
$(selector).children():获取所有直接子节点
$(selector).childNodes:以node[]的形式存放子节点,如果没有子节点,则返回空数组
$(selector).firstChild:获取第一个子节点
$(selector).lastChild:获取最后一个子节点
$(selector).contents:获取包含的所有内容,包括空文本
$(selector).removeChild(selector):删除并返回指定的子节点
$$(selector).replaceChild(selector):替换并返回指定的子节点
1.2 新增DOM节点
插入节点方法:
append():向每个匹配的元素内部末尾插入内容
appendTo():将所有匹配的元素追加到指定的元素中。实际上,使用该方法是颠倒了常规的$(A).append(B)的操作,即不是将B追加到A中,而是将A追加到B中
prepend():向每个匹配的元素内部头部插入内容
prependTo():将所有匹配的元素前置到指定的元素中。实际上,使用该方法是颠倒了常规的$(A).prepend(B)的操作,即不是将B前置到A中,而是将A前置到B中
after():在每个匹配的元索之后插入内容
insertAfler():将所有匹配的元素插入到指定元素的后面。实际上,使用该方法是颠倒了常规的$(A).after(B)的操作,即不是将B插入到A后面,而是将A插入到B后面:
before():在每个匹配的元素之前插入内容
insertBefore():将所有匹配的元素插入到指定的元素的前面。实际上,使用该方法是颠倒了常规的$(A).before(B)的操作,即不是将B插入到A前面,而是将A插入到B前面
创建元素节点:
创建一个元素节点的语法如下:
$(html);
例如要创建两个<li>元素节点,并且要把它们作为<ul>元素节点的子节点添加到DOM节点树上。完成这个任务需要两个步骤。
1.创建两个<li>新元素。
2.将这两个新元素插入文档中。
首先创建两个<li>元素,jQuery代码如下:
var $li_1 = $("<li></li>");    //  创建第一个<li>元素
var $li_2 = $("<li></li>");    //  创建第二个<li>元素
然后将这两个新元素插入文档中,可以使用jQuery中的append()等方法。JQuery代码如下:
    var $li_1 = $("<li>新增节点:数据结构</li>");    //  创建第一个<li>元素
    var $li_2 = $("<li>新增节点:设计模式</li>");    //  创建第二个<li>元素
    var $parent = $(".nm_ul");      // 获取<ul>节点。<li>的父节点
    $parent.append($li_1);      // 添加到<ul>节点中,使之能在网页中显示
    $parent.append($li_2);      // 可以采取链式写
    $parent.append($li_1).append($li_2);
创建文本节点:
创建文本节点就是在创建元素节点时直接把文本内容写出来,然后使用append()等方法将它们添加到文档中就可以了。
举例:
已经创建了两个<li>元素节点并把它们插入文档中了。此时需要为创建的元素节点添加文本内容。
    var $li_1 = $("<li>新增节点:数据结构</li>");    //  创建第一个<li>元素
    var $li_2 = $("<li>新增节点:设计模式</li>");    //  创建第二个<li>元素
    var $parent = $(".nm_ul");      // 获取<ul>节点。<li>的父节点
    $parent.append($li_1);      // 添加到<ul>节点中,使之能在网页中显示
    $parent.append($li_2);      // 可以采取链式写法:$parent.append($li_1).append($li_2);
创建属性节点:
创建属性节点与创建文本节点类似,也是直接在创建元素节点时一起创建。JQuery代码如下:
    var $li_1 = $("<li title='新增节点:数据结构'>新增节点:数据结构</li>");    //  创建第一个<li>元素
    var $li_2 = $("<li title='新增节点:设计模式'>新增节点:设计模式</li>");    //  创建第二个<li>元素
    var $parent = $(".nm_ul");      // 获取<ul>节点。<li>的父节点
    $parent.append($li_1);      // 添加到<ul>节点中,使之能在网页中显示
    $parent.append($li_2);      // 可以采取链式写法:$parent.append($li_1).append($li_2);
1.3 更新DOM节点
修改DOM节点内容:
使用.attr()方法时,传入两个参数来进行更改
即获取DOM节点时,添加要修改的内容作为参数来更改
复制节点:
复制节点方法能够复制节点元素,并且能够根据参数决定是否复制节点元素的行为。
$(element).clone()
替换节点:
replaceWith():将所有匹配的元素都替换成指定的HTML或者DOM 元素
$(被替换的元素).repalcewith(创建的节点)
replaceAll():与replaceWith()方法的作用相同,只是颠倒了replaceWith()操作
$(创建的节点).repalceAll(被替换的元素)
1.4 删除节点
remove():
从DOM中删除所有匹配的元素。这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。但除了这个元素本身得以保留之外,其他的比如绑定的事件,附加的数据等都会被移除。
detach():
从DOM中删除所有匹配的元素。这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素。与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。
empty():
该方法并不是删除节点,而是将节点清空,该方法可以清空元素中的所有的后代节点
1.5 更改css
addClass() - 向被选元素添加一个或多个类
removeClass() - 从被选元素删除一个或多个类
toggleClass() - 对被选元素进行添加/删除类的切换操作
css() - 设置或返回样式属性
css()方法:
css("propertyname");//返回指定的 CSS 属性的值
css("propertyname","value");//设置指定的 CSS 属性
//设置多个 CSS 属性
css({"propertyname":"value","propertyname":"value",
2. JQuery动画效果
2.1 隐藏与显示
通过JQuery,可以使用hide()和show()方法来隐藏和显示HTML元素
$("#hide").click(function(){
  $("p").hide();
});
$("#show").click(function(){
  $("p").show();
});
语法:
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是隐藏或显示完成后所执行的函数名称
通过 jQuery,可以使用 toggle() 方法来切换 hide() 和 show() 方法(即第一次触发事件隐藏,第二次触发事件显示)
$(selector).toggle(speed,callback);
可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是 toggle() 方法完成后所执行的函数名称。
2.2 淡入淡出
1.fadeIn() 方法
fadeIn() 用于淡入已隐藏的元素。
语法:
$(selector).fadeIn(speed,callback);
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是 fading 完成后所执行的函数名称。
2.fadeOut() 方法
jQuery fadeOut() 方法用于淡出可见元素
语法:
$(selector).fadeOut(speed,callback);
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是 fading 完成后所执行的函数名称。
3.fadeToggle() 方法
fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。
如果元素已淡出,则 fadeToggle() 会向元素添加淡入效果。
如果元素已淡入,则 fadeToggle() 会向元素添加淡出效果。
语法:
$(selector).fadeToggle(speed,callback);
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是 fading 完成后所执行的函数名称。
2.3 滑动
1.slideDown() 方法
jQuery slideDown() 方法用于向下滑动元素。
语法:
$(selector).slideDown(speed,callback);
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是滑动完成后所执行的函数名称。
2.slideUp() 方法用于向上滑动元素
jQuery slideDown() 方法用于向下滑动元素。
语法:
$(selector).slideUp(speed,callback);
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是滑动完成后所执行的函数名称。
3.slideToggle() 方法
jQuery slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换。
如果元素向下滑动,则 slideToggle() 可向上滑动它们。
如果元素向上滑动,则 slideToggle() 可向下滑动它们。
$(selector).slideToggle(speed,callback);
2.4 自定义动画
animate() 方法:
animate() 方法用于创建自定义动画。
语法:
$(selector).animate({params},speed,callback);
必需的 params 参数定义形成动画的 CSS 属性。
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是动画完成后所执行的函数名称。
$("button").click(function(){
  $("div").animate({left:'250px'});
});
操作多个属性:
$("button").click(function(){
  $("div").animate({
    left:'250px',
    opacity:'0.5',
    height:'150px',
    width:'150px'
  });});
3. BootStrap入门
3.1 什么是BootStrap
Bootstrap 是基于 HTML,CSS 和 JavaScript 的简洁灵活的流行前端框架及交互组件集,由微博的先驱 Twitter 在2011年8月开源的整套前端解决解决方案。
BootStrap是一个CSS框架,封装了原生的CSS,让开发人员可以开箱即用,并且使得界面更加美观
BootStrap的优点:
移动设备优先:自 Bootstrap 3 起,框架包含了贯穿于整个库的移动设备优先的样式。
浏览器支持:所有的主流浏览器都支持 Bootstrap。
容易上手:只要您具备 HTML 和 CSS 的基础知识,您就可以开始学习 Bootstrap。
响应式设计:Bootstrap 的响应式 CSS 能够自适应于台式机、平板电脑和手机。
它为开发人员创建接口提供了一个简洁统一的解决方案。
它包含了功能强大的内置组件,易于定制。
它还提供了基于 Web 的定制。
它是开源的。
3.2 怎么使用BootStarp
可以从 http://getbootstrap.com/ 上下载 Bootstrap 的最新版本。当您点击这个链接时,您将看到如下所示的网页:
点击Get Started
下载编译好的CSS和JS文件
3.3 BootStrap排版
1.标题:
Bootstrap 中定义了所有的 HTML 标题(h1 到 h6)的样式
<h1>我是标题1 h1</h1>
<h2>我是标题2 h2</h2>
<h3>我是标题3 h3</h3>
<h4>我是标题4 h4</h4>
<h5>我是标题5 h5</h5>
<h6>我是标题6 h6</h6>
2.内联子标题:
如果需要向任何标题添加一个内联子标题,只需要简单地在元素两旁添加 <small>,或者添加 .small class,这样子您就能得到一个字号更小的颜色更浅的文本,如下面实例所示:
<h1>我是标题1 h1. <small>我是副标题1 h1</small></h1>
<h2>我是标题2 h2. <small>我是副标题2 h2</small></h2>
<h3>我是标题3 h3. <small>我是副标题3 h3</small></h3>
<h4>我是标题4 h4. <small>我是副标题4 h4</small></h4>
<h5>我是标题5 h5. <small>我是副标题5 h5</small></h5>
<h6>我是标题6 h6. <small>我是副标题6 h6</small></h6>
3.引导主体副本:
为了给段落添加强调文本,则可以添加 class="lead",这将得到更大更粗、行高更高的文本,如下面实例所示:
<h2>引导主体副本</h2>
<p class="lead">这是一个演示引导主体副本用法的实例。这是一个演示引导主体副本用法的实例。这是一个演示引导主体副本用法的实例。这是一个演示引导主体副本用法的实例。这是一个演示引导主体副本用法的实例。这是一个演示引导主体副本用法的实例。这是一个演示引导主体副本用法的实例。这是一个演示引导主体副本用法的实例。</p>
4.强调:
HTML 的默认强调标签 <small>(设置文本为父文本大小的 85%)、<strong>(设置文本为更粗的文本)、<em>(设置文本为斜体)。
Bootstrap 提供了一些用于强调文本的类,如下面实例所示:
<small>本行内容是在标签内</small><br>
<strong>本行内容是在标签内</strong><br>
<em>本行内容是在标签内,并呈现为斜体</em><br>
<p class="text-left">向左对齐文本</p>
<p class="text-center">居中对齐文本</p>
<p class="text-right">向右对齐文本</p>
<p class="text-muted">本行内容是减弱的</p>
<p class="text-primary">本行内容带有一个 primary class</p>
<p class="text-success">本行内容带有一个 success class</p>
<p class="text-info">本行内容带有一个 info class</p>
<p class="text-warning">本行内容带有一个 warning class</p>
<p class="text-danger">本行内容带有一个 danger class</p>
3.4 BootStrap表格
Bootstrap 提供了一个清晰的创建表格的布局。下表列出了 Bootstrap 支持的一些表格元素:
| 标签 | 描述 | 
|---|---|
| <table> | 为表格添加基础样式。 | 
| <thead> | 表格标题行的容器元素(<tr>),用来标识表格列。 | 
| <tbody> | 表格主体中的表格行的容器元素(<tr>)。 | 
| <tr> | 一组出现在单行上的表格单元格的容器元素(<td> 或 <th>)。 | 
| <td> | 默认的表格单元格。 | 
| <th> | 特殊的表格单元格,用来标识列或行(取决于范围和位置)。必须在 <thead> 内使用。 | 
| <caption> | 关于表格存储内容的描述或总结。 | 
表格类:
| 类 | 描述 | 
|---|---|
| .table | 为任意 <table> 添加基本样式 (只有横向分隔线) | 
| .table-striped | 在 <tbody> 内添加斑马线形式的条纹 ( IE8 不支持) | 
| .table-bordered | 为所有表格的单元格添加边框 | 
| .table-hover | 在 <tbody> 内的任一行启用鼠标悬停状态 | 
| .table-condensed | 让表格更加紧凑 | 
<tr>, <th> 和 <td> 类:
| 类 | 描述 | 
|---|---|
| .active | 将悬停的颜色应用在行或者单元格上 | 
| .success | 表示成功的操作 | 
| .info | 表示信息变化的操作 | 
| .warning | 表示一个警告的操作 | 
| .danger | 表示一个危险的操作 | 
 <table class="table table-striped">
        <thead>
                <tr>
                    <th>第一列</th>
                    <th>第二列</th>
                    <th>第三列</th>
                    <th>第四列</th>
                </tr>
        </thead>
        <tbody>
            <tr>
                <td>1-1</td>
                <td>1-2</td>
                <td>1-3</td>
                <td>1-4</td>
            </tr>
            <tr>
                <td>2-1</td>
                <td>2-2</td>
                <td>2-3</td>
                <td>2-4</td>
            </tr>
            <tr>
                <td>3-1</td>
                <td>3-2</td>
                <td>3-3</td>
                <td>3-4</td>
            </tr>
        </tbody>
    </table>
3.5 BootStrap按钮
任何带有 class .btn 的元素都会继承圆角灰色按钮的默认外观。但是 Bootstrap 提供了一些选项来定义按钮的样式,具体如下表所示:
以下样式可用于<a>, <button>, 或 <input> 元素上:
| 类 | 描述 | 
|---|---|
| .btn | 为按钮添加基本样式 | 
| .btn-default | 默认/标准按钮 | 
| .btn-primary | 原始按钮样式(未被操作) | 
| .btn-success | 表示成功的动作 | 
| .btn-info | 该样式可用于要弹出信息的按钮 | 
| .btn-warning | 表示需要谨慎操作的按钮 | 
| .btn-danger | 表示一个危险动作的按钮操作 | 
| .btn-link | 让按钮看起来像个链接 (仍然保留按钮行为) | 
| .btn-lg | 制作一个大按钮 | 
| .btn-sm | 制作一个小按钮 | 
| .btn-xs | 制作一个超小按钮 | 
| .btn-block | 块级按钮(拉伸至父元素100%的宽度) | 
| .active | 按钮被点击 | 
| .disabled | 禁用按钮 | 
3.6 BootStrap表单
Bootstrap 提供了下列类型的表单布局:
- 
垂直表单(默认)
 - 
内联表单
 - 
水平表单
 
1.垂直或基本表单:
基本的表单结构是 Bootstrap 自带的,个别的表单控件自动接收一些全局样式。下面列出了创建基本表单的步骤:
- 
向父 <form> 元素添加 role="form"。
 - 
把标签和控件放在一个带有 class .form-group 的 <div> 中。这是获取最佳间距所必需的。
 - 
向所有的文本元素 <input>、<textarea> 和 <select> 添加 class ="form-control" 。
 
<form role="form">
  <div class="form-group">
    <label for="name">名称</label>
    <input type="text" class="form-control" id="name" placeholder="请输入名称">
  </div>
  <div class="form-group">
    <label for="inputfile">文件输入</label>
    <input type="file" id="inputfile">
    <p class="help-block">这里是块级帮助文本的实例。</p>
  </div>
  <div class="checkbox">
    <label>
      <input type="checkbox">请打勾
    </label>
  </div>
  <button type="submit" class="btn btn-default">提交</button>
</form>
2.内联表单:
如果需要创建一个表单,它的所有元素是内联的,向左对齐的,标签是并排的,请向 <form> 标签添加 class .form-inline
<form class="form-inline" role="form">
  <div class="form-group">
    <label class="sr-only" for="name">名称</label>
    <input type="text" class="form-control" id="name" placeholder="请输入名称">
  </div>
  <div class="form-group">
    <label class="sr-only" for="inputfile">文件输入</label>
    <input type="file" id="inputfile">
  </div>
  <div class="checkbox">
    <label>
      <input type="checkbox">请打勾
    </label>
  </div>
  <button type="submit" class="btn btn-default">提交</button>
</form>
3.水平表单:
水平表单与其他表单不仅标记的数量上不同,而且表单的呈现形式也不同。如需创建一个水平布局的表单,请按下面的几个步骤进行:
- 
向父 <form> 元素添加 class .form-horizontal。
 - 
把标签和控件放在一个带有 class .form-group 的 <div> 中。
 - 
向<laber>标签添加 class .control-label。
 
<form class="form-horizontal" role="form">
  <div class="form-group">
    <label for="firstname" class="col-sm-2 control-label">名字</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" id="firstname" placeholder="请输入名字">
    </div>
  </div>
  <div class="form-group">
    <label for="lastname" class="col-sm-2 control-label">姓</label>
    <div class="col-sm-10">
      <input type="text" class="form-control" id="lastname" placeholder="请输入姓">
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <div class="checkbox">
        <label>
          <input type="checkbox">请记住我
        </label>
      </div>
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-default">登录</button>
    </div>
  </div>
</form>
4.表单控件:
Bootstrap 支持最常见的表单控件,主要是 input、textarea、checkbox、radio 和 select。
输入框(Input):
最常见的表单文本字段是输入框 input。用户可以在其中输入大多数必要的表单数据。Bootstrap 提供了对所有原生的 HTML5 的 input 类型的支持,包括:text、password、datetime、datetime-local、date、month、time、week、number、email、url、search、tel 和 color
<form role="form">
  <div class="form-group">
    <label for="name">标签</label>
    <input type="text" class="form-control" placeholder="文本输入">
  </div>
 </form>
文本框(Textarea):
当您需要进行多行输入的时,则可以使用文本框 textarea
<form role="form">
  <div class="form-group">
    <label for="name">文本框</label>
    <textarea class="form-control" rows="3"></textarea>
  </div>
</form>
复选框(Checkbox)和单选框(Radio):
复选框和单选按钮用于让用户从一系列预设置的选项中进行选择。
- 
当创建表单时,如果您想让用户从列表中选择若干个选项时,请使用 checkbox。如果您限制用户只能选择一个选项,请使用 radio。
 - 
对一系列复选框和单选框使用 .checkbox-inline 或 .radio-inline class,控制它们显示在同一行上。
 
<label for="name">默认的复选框和单选按钮的实例</label>
<div class="checkbox">
    <label><input type="checkbox" value="">选项 1</label>
</div>
<div class="checkbox">
    <label><input type="checkbox" value="">选项 2</label>
</div>
<div class="radio">
    <label>
        <input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked> 选项 1
    </label>
</div>
<div class="radio">
    <label>
        <input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">选项 2 - 选择它将会取消选择选项 1
    </label>
</div>
<label for="name">内联的复选框和单选按钮的实例</label>
<div>
    <label class="checkbox-inline">
        <input type="checkbox" id="inlineCheckbox1" value="option1"> 选项 1
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="inlineCheckbox2" value="option2"> 选项 2
    </label>
    <label class="checkbox-inline">
        <input type="checkbox" id="inlineCheckbox3" value="option3"> 选项 3
    </label>
    <label class="radio-inline">
        <input type="radio" name="optionsRadiosinline" id="optionsRadios3" value="option1" checked> 选项 1
    </label>
    <label class="radio-inline">
        <input type="radio" name="optionsRadiosinline" id="optionsRadios4"  value="option2"> 选项 2
    </label>
</div>
选择框(Select):
当您想让用户从多个选项中进行选择,但是默认情况下只能选择一个选项时,则使用选择框。
- 
使用 <select> 展示列表选项,通常是那些用户很熟悉的选择列表,比如州或者数字。
 - 
使用 multiple="multiple" 允许用户选择多个选项。
 
<form role="form">
  <div class="form-group">
    <label for="name">选择列表</label>
    <select class="form-control">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
    </select>
    <label for="name">可多选的选择列表</label>
    <select multiple class="form-control">
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
    </select>
  </div>
</form>
表单控件状态:
输入框焦点
当输入框 input 接收到 :focus 时,输入框的轮廓会被移除,同时应用 box-shadow。
禁用的输入框 input
如果您想要禁用一个输入框 input,只需要简单地添加 disabled 属性,这不仅会禁用输入框,还会改变输入框的样式以及当鼠标的指针悬停在元素上时鼠标指针的样式。
禁用的字段集 fieldset
对 <fieldset> 添加 disabled 属性来禁用 <fieldset> 内的所有控件。
验证状态
Bootstrap 包含了错误、警告和成功消息的验证样式。只需要对父元素简单地添加适当的 class(.has-warning、 .has-error 或 .has-success)即可使用验证状态。

                
            
        
浙公网安备 33010602011771号