Home  >  Article  >  Web Front-end  >  JQuery.validate在ie8下不支持解决方案 - 浮叶

JQuery.validate在ie8下不支持解决方案 - 浮叶

WBOY
WBOYOriginal
2016-05-20 13:46:301155browse

一、在ie8下回有问题的代码

1、JQuery.validate验证框架是通过页面form表单提交验证标签中输入是否符合自己的规则的

<span style="color: #008080;"> 1</span> <span style="color: #0000ff;"><span style="color: #800000;">form </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="cardTypeFrm"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 2</span>     <span style="color: #0000ff;"><span style="color: #800000;">table </span><span style="color: #ff0000;">width</span><span style="color: #0000ff;">="100%"</span><span style="color: #ff0000;"> cellspacing</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> cellpadding</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="table_pzh"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 3</span>         <span style="color: #0000ff;"><span style="color: #800000;">tbody</span><span style="color: #0000ff;">></span>                      
<span style="color: #008080;"> 4</span>             <span style="color: #0000ff;"><span style="color: #800000;">tr</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 5</span>                 <span style="color: #0000ff;"><span style="color: #800000;">th </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="f14 tr pc1"</span><span style="color: #0000ff;">></span>用户名:<span style="color: #0000ff;"></span><span style="color: #800000;">th</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 6</span>                 <span style="color: #0000ff;"><span style="color: #800000;">td</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 7</span>                     <span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="pzh_input1"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="userName"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="userName"</span> <span style="color: #0000ff;">/></span>
<span style="color: #008080;"> 8</span>                 <span style="color: #0000ff;"></span><span style="color: #800000;">td</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 9</span>             <span style="color: #0000ff;"></span><span style="color: #800000;">tr</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">10</span>             <span style="color: #0000ff;"><span style="color: #800000;">tr</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">11</span>                 <span style="color: #0000ff;"><span style="color: #800000;">th </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="f14 tr pc1"</span><span style="color: #0000ff;">></span>密码:<span style="color: #0000ff;"></span><span style="color: #800000;">th</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">12</span>                 <span style="color: #0000ff;"><span style="color: #800000;">td</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">13</span>                     <span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="pzh_input1"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="passWord"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="passWord"</span> <span style="color: #0000ff;">/></span>
<span style="color: #008080;">14</span>                 <span style="color: #0000ff;"></span><span style="color: #800000;">td</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">15</span>             <span style="color: #0000ff;"></span><span style="color: #800000;">tr</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">16</span>         <span style="color: #0000ff;"></span><span style="color: #800000;">tbody</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">17</span>     <span style="color: #0000ff;"></span><span style="color: #800000;">table</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">18</span>     <span style="color: #0000ff;"><span style="color: #800000;">p </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="pc2 undis pl50 error pa"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="padding-left:118px;margin-top:-10px;"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="card_next_error"</span><span style="color: #0000ff;">></span>错误信息<span style="color: #0000ff;"></span><span style="color: #800000;">p</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">19</span>     <span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="m20 tc"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">20</span>         <span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="submit"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="submitCardNo"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="define_button reservation_1"</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">="登陆"</span> <span style="color: #0000ff;">/></span>
<span style="color: #008080;">21</span>         <span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="button"</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">="取消"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="close_button closePzh ml10"</span> <span style="color: #0000ff;">/></span>
<span style="color: #008080;">22</span>     <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">23</span> <span style="color: #0000ff;"></span><span style="color: #800000;">form</span><span style="color: #0000ff;">></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
html代码

其中 name属性和下面js中的rules中的属性一致

2、js绑定validate事件代码如下

<span style="color: #008080;"> 1</span> $(<span style="color: #0000ff;">function</span><span style="color: #000000;">() {
</span><span style="color: #008080;"> 2</span> <span style="color: #000000;">           initCardTypeFrmValidate()
</span><span style="color: #008080;"> 3</span> <span style="color: #000000;">           })
</span><span style="color: #008080;"> 4</span> 
<span style="color: #008080;"> 5</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> initCardTypeFrmValidate() {
</span><span style="color: #008080;"> 6</span> 
<span style="color: #008080;"> 7</span>     $('#cardTypeFrm'<span style="color: #000000;">).validate({
</span><span style="color: #008080;"> 8</span>         onkeyup : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
</span><span style="color: #008080;"> 9</span>         onfocusout : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
</span><span style="color: #008080;">10</span> <span style="color: #000000;">        rules : {
</span><span style="color: #008080;">11</span>             userName : {required : <span style="color: #0000ff;">true</span><span style="color: #000000;">}
</span><span style="color: #008080;">12</span>             passWord : {required : <span style="color: #0000ff;">true</span><span style="color: #000000;">}
</span><span style="color: #008080;">13</span> <span style="color: #000000;">        },
</span><span style="color: #008080;">14</span> 
<span style="color: #008080;">15</span> <span style="color: #000000;">        messages : {
</span><span style="color: #008080;">16</span>             userName : {required : '请输入用户名'<span style="color: #000000;">},
</span><span style="color: #008080;">17</span>             passWord : {required : '请输入密码'<span style="color: #000000;">}
</span><span style="color: #008080;">18</span> <span style="color: #000000;">        },
</span><span style="color: #008080;">19</span>         errorElement : "p"
<span style="color: #008080;">20</span> <span style="color: #000000;">    });
</span><span style="color: #008080;">21</span> }
js代码

onkeyup : false,表示键盘输入不验证,默认true
onfocusout : false,表示输入框失去焦点不验证,默认true

二、解决方案是,禁止页面的表单提交,实行js中绑定表单提交表单

1、html代码不变

<span style="color: #008080;"> 1</span> <span style="color: #0000ff;"><span style="color: #800000;">form </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="cardTypeFrm"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 2</span>     <span style="color: #0000ff;"><span style="color: #800000;">table </span><span style="color: #ff0000;">width</span><span style="color: #0000ff;">="100%"</span><span style="color: #ff0000;"> cellspacing</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> cellpadding</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="table_pzh"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 3</span>         <span style="color: #0000ff;"><span style="color: #800000;">tbody</span><span style="color: #0000ff;">></span>                      
<span style="color: #008080;"> 4</span>             <span style="color: #0000ff;"><span style="color: #800000;">tr</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 5</span>                 <span style="color: #0000ff;"><span style="color: #800000;">th </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="f14 tr pc1"</span><span style="color: #0000ff;">></span>用户名:<span style="color: #0000ff;"></span><span style="color: #800000;">th</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 6</span>                 <span style="color: #0000ff;"><span style="color: #800000;">td</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 7</span>                     <span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="pzh_input1"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="userName"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="userName"</span> <span style="color: #0000ff;">/></span>
<span style="color: #008080;"> 8</span>                 <span style="color: #0000ff;"></span><span style="color: #800000;">td</span><span style="color: #0000ff;">></span>
<span style="color: #008080;"> 9</span>             <span style="color: #0000ff;"></span><span style="color: #800000;">tr</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">10</span>             <span style="color: #0000ff;"><span style="color: #800000;">tr</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">11</span>                 <span style="color: #0000ff;"><span style="color: #800000;">th </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="f14 tr pc1"</span><span style="color: #0000ff;">></span>密码:<span style="color: #0000ff;"></span><span style="color: #800000;">th</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">12</span>                 <span style="color: #0000ff;"><span style="color: #800000;">td</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">13</span>                     <span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="pzh_input1"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="passWord"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">="passWord"</span> <span style="color: #0000ff;">/></span>
<span style="color: #008080;">14</span>                 <span style="color: #0000ff;"></span><span style="color: #800000;">td</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">15</span>             <span style="color: #0000ff;"></span><span style="color: #800000;">tr</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">16</span>         <span style="color: #0000ff;"></span><span style="color: #800000;">tbody</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">17</span>     <span style="color: #0000ff;"></span><span style="color: #800000;">table</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">18</span>     <span style="color: #0000ff;"><span style="color: #800000;">p </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="pc2 undis pl50 error pa"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="padding-left:118px;margin-top:-10px;"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="card_next_error"</span><span style="color: #0000ff;">></span>错误信息<span style="color: #0000ff;"></span><span style="color: #800000;">p</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">19</span>     <span style="color: #0000ff;"><span style="color: #800000;">div </span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="m20 tc"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">20</span>         <span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="submit"</span><span style="color: #ff0000;"> id</span><span style="color: #0000ff;">="submitCardNo"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="define_button reservation_1"</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">="登陆"</span> <span style="color: #0000ff;">/></span>
<span style="color: #008080;">21</span>         <span style="color: #0000ff;"><span style="color: #800000;">input </span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="button"</span><span style="color: #ff0000;"> value</span><span style="color: #0000ff;">="取消"</span><span style="color: #ff0000;"> class</span><span style="color: #0000ff;">="close_button closePzh ml10"</span> <span style="color: #0000ff;">/></span>
<span style="color: #008080;">22</span>     <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">23</span> <span style="color: #0000ff;"></span><span style="color: #800000;">form</span><span style="color: #0000ff;">></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

2、js代码中加入绑定提交事件

<span style="color: #008080;"> 1</span> $(<span style="color: #0000ff;">function</span><span style="color: #000000;">() {
</span><span style="color: #008080;"> 2</span> <span style="color: #000000;">           initCardTypeFrmValidate()
</span><span style="color: #008080;"> 3</span>            <span style="color: #008000;">//</span><span style="color: #008000;">优化代码</span>
<span style="color: #008080;"> 4</span>            $('#cardTypeFrm').submit(<span style="color: #0000ff;">function</span><span style="color: #000000;">() {
</span><span style="color: #008080;"> 5</span> 
<span style="color: #008080;"> 6</span>                 <span style="color: #0000ff;">if</span> ($('#cardTypeFrm'<span style="color: #000000;">).valid()) {
</span><span style="color: #008080;"> 7</span>                     <span style="color: #008000;">//</span><span style="color: #008000;">通过执行的动作</span>
<span style="color: #008080;"> 8</span> <span style="color: #000000;">                }
</span><span style="color: #008080;"> 9</span>                 <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span>;<span style="color: #008000;">//</span><span style="color: #008000;">永远禁止页面表单提交</span>
<span style="color: #008080;">10</span> <span style="color: #000000;">            })
</span><span style="color: #008080;">11</span> <span style="color: #000000;">    })
</span><span style="color: #008080;">12</span> 
<span style="color: #008080;">13</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> initCardTypeFrmValidate() {
</span><span style="color: #008080;">14</span> 
<span style="color: #008080;">15</span>     $('#cardTypeFrm'<span style="color: #000000;">).validate({
</span><span style="color: #008080;">16</span>         onkeyup : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
</span><span style="color: #008080;">17</span>         onfocusout : <span style="color: #0000ff;">false</span><span style="color: #000000;">,
</span><span style="color: #008080;">18</span> <span style="color: #000000;">        rules : {
</span><span style="color: #008080;">19</span>             userName : {required : <span style="color: #0000ff;">true</span><span style="color: #000000;">}
</span><span style="color: #008080;">20</span>             passWord : {required : <span style="color: #0000ff;">true</span><span style="color: #000000;">}
</span><span style="color: #008080;">21</span> <span style="color: #000000;">        },
</span><span style="color: #008080;">22</span> 
<span style="color: #008080;">23</span> <span style="color: #000000;">        messages : {
</span><span style="color: #008080;">24</span>             userName : {required : '请输入用户名'<span style="color: #000000;">},
</span><span style="color: #008080;">25</span>             passWord : {required : '请输入密码'<span style="color: #000000;">}
</span><span style="color: #008080;">26</span> <span style="color: #000000;">        },
</span><span style="color: #008080;">27</span>         errorElement : "p"
<span style="color: #008080;">28</span> <span style="color: #000000;">    });
</span><span style="color: #008080;">29</span> }

 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn