ホームページ  >  記事  >  ウェブフロントエンド  >  JQuery.validate在ie8下不支持解决方案 - 浮叶

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

WBOY
WBOYオリジナル
2016-05-20 13:46:301158ブラウズ

一、在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> }

 

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。