中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

擁有一個屬于自己的javascript表單驗證插件
來源:易賢網 閱讀:1096 次 日期:2016-07-16 13:23:33
溫馨提示:易賢網小編為您整理了“擁有一個屬于自己的javascript表單驗證插件”,方便廣大網友查閱!

這篇文章主要幫助大家擁有一個屬于自己的javascript表單驗證插件,具有一定的參考價值,感興趣的小伙伴們可以參考一下

自己編寫了一個表單驗證插件,使用起來很簡單,以后還可以擴展更多的功能,比如ajax驗證。

每個需要驗證的表單元素下面有一個span標簽,這個標簽的class有一個valid表示需要驗證,如果有nullable則表示可為空;rule表示驗證規則,msg表示錯誤提示信息;to表示要驗證的元素的name值,如果元素是單個的,to可以不寫。該插件會遍歷每個有valid的span標簽,找出它前面需要驗證的元素,根據rule驗證,如果驗證不通過,則顯示邊框為紅色,鼠標放在元素上時顯示錯誤信息。

驗證時機:1、點擊提交按鈕時顯式調用驗證方法;2、當元素觸發blur時驗證。

插件代碼:

CSS:

.failvalid

{

 border: solid 2px red !important;

}

JS:

/**

* 驗證插件

*/

SimpoValidate = {

 //驗證規則

 rules: {

  int: /^[1-9]\d*$/,

  number: /^[+-]?\d*\.?\d+$/

 },

 //初始化

 init: function () {

  $("span[class*='valid']").each(function () { //遍歷span

   var validSpan = $(this);

   var to = validSpan.attr("to");

   var target;

   if (to) {

    target = $("input[name='" + to + "'],select[name='" + to + "'],textarea[name='" + to + "']");

   } else {

    var target = validSpan.prev();

   }

   if (target) {

    target.blur(function () {

     SimpoValidate.validOne(target, validSpan);

    });

   }

  });

 },

 //驗證全部,驗證成功返回true

 valid: function () {

  var bl = true;

  $("span[class*='valid']").each(function () { //遍歷span

   var validSpan = $(this);

   var to = validSpan.attr("to");

   var target;

   if (to) {

    target = $("input[name='" + to + "'],select[name='" + to + "'],textarea[name='" + to + "']");

   } else {

    target = validSpan.prev();

   }

   if (target) {

    if (!SimpoValidate.validOne(target, validSpan)) {

     bl = false;

    }

   }

  });

  return bl;

 },

 //單個驗證,驗證成功返回true

 validOne: function (target, validSpan) {

  SimpoValidate.removehilight(target, msg);

  var rule = SimpoValidate.getRule(validSpan);

  var msg = validSpan.attr("msg");

  var nullable = validSpan.attr("class").indexOf("nullable") == -1 ? false : true; //是否可為空

  var to = validSpan.attr("to");

  if (target) {

   //checkbox或radio

   if (target[0].tagName.toLowerCase() == "input" && target.attr("type") && (target.attr("type").toLowerCase() == "checkbox" || target.attr("type").toLowerCase() == "radio")) {

    var checkedInput = $("input[name='" + to + "']:checked");

    if (!nullable) {

     if (checkedInput.length == 0) {

      SimpoValidate.hilight(target, msg);

      return false;

     }

    }

   }

   //input或select

   if (target[0].tagName.toLowerCase() == "input" || target[0].tagName.toLowerCase() == "select") {

    var val = target.val();

    if (!nullable) {

     if ($.trim(val) == "") {

      SimpoValidate.hilight(target, msg);

      return false;

     }

    }

    else {

     if ($.trim(val) == "") {

      SimpoValidate.removehilight(target, msg);

      return true;

     }

    }

    if (rule) {

     var reg = new RegExp(rule);

     if (!reg.test(val)) {

      SimpoValidate.hilight(target, msg);

      return false;

     }

    }

   }

   else if (target[0].tagName.toLowerCase() == "textarea") {

    var val = target.text();

    if (!nullable) {

     if ($.trim(val) == "") {

      SimpoValidate.hilight(target, msg);

      return false;

     }

    }

    else {

     if ($.trim(val) == "") {

      SimpoValidate.removehilight(target, msg);

      return true;

     }

    }

    if (rule) {

     var reg = new RegExp(rule);

     if (!reg.test(val)) {

      SimpoValidate.hilight(target, msg);

      return false;

     }

    }

   }

  }

  return true;

 },

 //獲取驗證規則

 getRule: function (validSpan) {

  var rule = validSpan.attr("rule");

  switch ($.trim(rule)) {

   case "int":

    return this.rules.int;

   case "number":

    return this.rules.number;

   default:

    return rule;

    break;

  }

 },

 //紅邊框及錯誤提示

 hilight: function (target, msg) {

  target.addClass("failvalid");

  target.bind("mouseover", function (e) {

   SimpoValidate.tips(target, msg, e);

  });

  target.bind("mouseout", function () {

   SimpoValidate.removetips();

  });

 },

 //取消紅邊框及錯誤提示

 removehilight: function (target) {

  target.unbind("mouseover");

  target.unbind("mouseout");

  target.removeClass("failvalid");

  SimpoValidate.removetips();

 },

 //顯示提示

 tips: function (target, text, e) {

  var divtipsstyle = "position: absolute; left: 0; top: 0; background-color: #dceaf2; padding: 3px; border: solid 1px #6dbde4; visibility: hidden; line-height:20px; ";

  $("body").append("<div class='div-tips' style='" + divtipsstyle + "'>" + text + "</div>");

  var divtips = $(".div-tips");

  divtips.css("visibility", "visible");

  var top = e.clientY + $(window).scrollTop() - divtips.height() - 18;

  var left = e.clientX;

  divtips.css("top", top);

  divtips.css("left", left);

  $(target).mousemove(function (e) {

   var top = e.clientY + $(window).scrollTop() - divtips.height() - 18;

   var left = e.clientX;

   divtips.css("top", top);

   divtips.css("left", left);

  });

 },

 //移除提示

 removetips: function () {

  $(".div-tips").remove();

 }

};

$(function () {

 SimpoValidate.init();

});

如何使用:

1、引用CSS和JS(必須引用jQuery):

<link type="text/css" href="~/Scripts/SimpoValidate.css" rel="stylesheet" />

<script type="text/javascript" src="~/Scripts/jquery-1.8.2.js"></script>

<script type="text/javascript" src="~/Scripts/ValidateUtil.js"></script>

2、表單HTML代碼(部分代碼):

<table class="table-test" cellpadding="0" cellspacing="0" style="border-collapse: collapse; width: 100%;">

 <tr>

  <td>

   <input name="c" value="" type="text" />

   <span class="valid nullable" rule="int" msg="可為空,請填寫正整數"></span>

  </td>

 </tr>

 <tr>

  <td>

   <input name="d" value="" type="text" />

   <span class="valid" rule="number" msg="必填,請填寫數字"></span>

  </td>

 </tr>

 <tr>

  <td>

   <select>

    <option value="-1">==請選擇==</option>

    <option value="1">是</option>

    <option value="2">否</option>

   </select>

   <span class="valid" rule="^(?!-1$).+$" msg="必選"></span>

  </td>

 </tr>

 <tr>

  <td>

   <input name="a" value="1" type="checkbox" />

   <span>多</span>

   <input name="a" value="2" type="checkbox" />

   <span>少</span>

   <span class="valid" rule="" msg="必選" to="a"></span>

  </td>

 </tr>

 <tr>

  <td>

   <input name="b" value="1" type="radio" />

   <span>狗</span>

   <input name="b" value="2" type="radio" />

   <span>貓</span>

   <span class="valid" rule="" msg="必選" to="b"></span>

  </td>

 </tr>

 <tr>

  <td>

   <textarea cols="20" rows="5" style="height: 50px; width: 300px;"></textarea>

   <span class="valid nullable" rule="^(.|\n){5,100}$" msg="可為空,長度必須大于等于5小于等于100"></span>

  </td>

 </tr>

</table>

3、執行驗證JS代碼:

//保存數據

function save() {

 if (SimpoValidate.valid()) { //執行驗證

  $("#frm").submit(); //提交表單

 }

}

效果圖:

名單

以上就是作者自己動手編寫的javascript表單驗證插件,希望能夠幫助到大家。

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲午夜免费福利视频| 欧美激情国产日韩精品一区18| 欧美日韩一区二区视频在线| 久久久福利视频| 亚洲欧美日韩国产中文| 久久美女性网| 亚洲女性喷水在线观看一区| 亚洲黄色有码视频| 精品不卡在线| 激情av一区| 国产夜色精品一区二区av| 欧美区高清在线| 免费视频一区二区三区在线观看| 久久国产精品网站| 久久国产精品毛片| 午夜久久美女| 午夜精品在线| 午夜精品一区二区三区在线视| 亚洲免费视频中文字幕| 亚洲综合不卡| 午夜亚洲精品| 欧美在线欧美在线| 久久综合色天天久久综合图片| 久久精品一区二区三区中文字幕 | 激情视频亚洲| 国产综合自拍| 亚洲第一主播视频| 91久久在线| 亚洲一区成人| 性感少妇一区| 久久久久在线| 欧美乱人伦中文字幕在线| 欧美日韩亚洲三区| 国产日韩高清一区二区三区在线| 国产精品区一区二区三| 欧美一区亚洲二区| 亚洲网友自拍| 欧美三级电影大全| 国产日产欧产精品推荐色 | 国产精品久久久久高潮| 国产精品久久久久久久久久免费 | 久久免费黄色| 欧美成人综合网站| 欧美日韩性视频在线| 欧美午夜精品久久久久久浪潮| 国产精品久久激情| 国产一区二区中文字幕免费看| 亚洲成色777777女色窝| 一区二区激情| 久久成人精品无人区| 欧美国产在线视频| 国产精品色在线| 亚洲国产精品久久久久秋霞不卡 | 亚洲黄色影院| 亚洲午夜在线视频| 久久久亚洲成人| 狠狠色噜噜狠狠狠狠色吗综合| 一区二区三区在线不卡| 午夜精品久久久久久久| 国产日韩精品在线观看| 欧美专区一区二区三区| 在线成人激情| 欧美韩日一区| 亚洲一区二区三区精品在线| 国产精品国产三级国产专播精品人| 亚洲一区观看| 国产一级揄自揄精品视频| 久久婷婷丁香| 亚洲精品三级| 国产精品久久久久三级| 亚洲欧美日韩另类| 精品成人一区二区三区| 欧美国产免费| 亚洲欧美日本日韩| 在线观看成人网| 欧美乱妇高清无乱码| 亚洲一区二区三区四区在线观看| 国产精品三级视频| 看欧美日韩国产| 一区二区国产在线观看| 国产色爱av资源综合区| 久久综合精品一区| 宅男噜噜噜66一区二区| 国产一区二区三区久久久久久久久| 免费成人在线观看视频| 亚洲自拍啪啪| 亚洲二区精品| 国产精品午夜国产小视频| 久久一二三区| 亚洲已满18点击进入久久| 黄色亚洲大片免费在线观看| 欧美日韩国产色视频| 久久精品99国产精品日本 | 亚洲午夜av电影| 激情自拍一区| 欧美视频免费在线观看| 久久视频这里只有精品| 亚洲一区二区三区免费视频 | 国产一区二区黄色| 欧美国产第一页| 欧美专区亚洲专区| 在线亚洲免费| 亚洲激情视频网站| 国产精品日韩专区| 欧美精品久久久久久久免费观看| 香蕉久久夜色| 在线一区免费观看| 亚洲人成7777| 黄色亚洲在线| 国产日韩综合一区二区性色av| 欧美精品一区二区三区很污很色的| 性视频1819p久久| 一区二区三区不卡视频在线观看 | 欧美主播一区二区三区美女 久久精品人| 亚洲国产精品久久久久秋霞不卡 | 欧美四级在线观看| 欧美电影美腿模特1979在线看| 欧美一区二区三区四区高清| av成人免费在线| 亚洲欧洲精品一区二区三区| 国产一区久久| 国产一区二区高清视频| 国产精品久久久久久久浪潮网站| 欧美金8天国| 欧美成人精品一区二区三区| 久久久久天天天天| 久久狠狠久久综合桃花| 先锋亚洲精品| 亚洲女同精品视频| 亚洲色图自拍| 亚洲网站视频| 亚洲一区亚洲二区| 亚洲在线观看视频网站| 亚洲图片欧美日产| 亚洲午夜在线观看视频在线| 亚洲一区二区三区免费观看 | 欧美精品免费视频| 欧美成人午夜视频| 欧美激情视频一区二区三区在线播放 | 欧美激情亚洲自拍| 欧美激情第五页| 免费看av成人| 久久久国产精品亚洲一区| 欧美在线观看视频| 久久久精彩视频| 欧美制服第一页| 久久国产精彩视频| 久久久欧美一区二区| 毛片基地黄久久久久久天堂| 久久精品官网| 久久综合狠狠综合久久综合88 | 牛牛国产精品| 免费在线观看一区二区| 免费日韩成人| 欧美日韩精品免费观看视频| 欧美日韩国产精品| 欧美第一黄网免费网站| 欧美激情第9页| 欧美四级剧情无删版影片| 欧美色网在线| 国产精品手机在线| 国产一区二区观看| 在线日韩视频| 亚洲国产片色| 亚洲精品人人| 午夜亚洲性色视频| 另类酷文…触手系列精品集v1小说| 欧美1区视频| 国产精品黄色在线观看| 国产一区二区成人| 亚洲国内自拍| 亚洲欧美日韩在线观看a三区| 久久精品国产第一区二区三区| 蜜臀久久99精品久久久画质超高清| 欧美另类极品videosbest最新版本| 欧美性猛交xxxx乱大交退制版| 国产一区二区剧情av在线| 亚洲高清av| 亚洲欧美色一区| 欧美成年人视频网站| 国产精品视频专区| 亚洲娇小video精品| 亚洲午夜视频在线观看| 久久永久免费| 国产精品免费网站| 亚洲国产精品一区二区尤物区| 亚洲图中文字幕| 麻豆国产精品777777在线| 欧美精品在欧美一区二区少妇| 国产老女人精品毛片久久| 亚洲福利一区| 欧美一区1区三区3区公司| 欧美www在线| 国产亚洲精品资源在线26u| 亚洲精品免费观看| 久久精品天堂| 国产精品视频在线观看| 亚洲精品在线免费观看视频| 欧美在线观看网站| 欧美日韩精品一区二区|