茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

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

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

    自己編寫了一個(gè)表單驗(yàn)證插件,使用起來很簡單,以后還可以擴(kuò)展更多的功能,比如ajax驗(yàn)證。

    每個(gè)需要驗(yàn)證的表單元素下面有一個(gè)span標(biāo)簽,這個(gè)標(biāo)簽的class有一個(gè)valid表示需要驗(yàn)證,如果有nullable則表示可為空;rule表示驗(yàn)證規(guī)則,msg表示錯(cuò)誤提示信息;to表示要驗(yàn)證的元素的name值,如果元素是單個(gè)的,to可以不寫。該插件會(huì)遍歷每個(gè)有valid的span標(biāo)簽,找出它前面需要驗(yàn)證的元素,根據(jù)rule驗(yàn)證,如果驗(yàn)證不通過,則顯示邊框?yàn)榧t色,鼠標(biāo)放在元素上時(shí)顯示錯(cuò)誤信息。

    驗(yàn)證時(shí)機(jī):1、點(diǎn)擊提交按鈕時(shí)顯式調(diào)用驗(yàn)證方法;2、當(dāng)元素觸發(fā)blur時(shí)驗(yàn)證。

    插件代碼:

    CSS:

    .failvalid

    {

     border: solid 2px red !important;

    }

    JS:

    /**

    * 驗(yàn)證插件

    */

    SimpoValidate = {

     //驗(yàn)證規(guī)則

     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);

        });

       }

      });

     },

     //驗(yàn)證全部,驗(yàn)證成功返回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;

     },

     //單個(gè)驗(yàn)證,驗(yàn)證成功返回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;

     },

     //獲取驗(yàn)證規(guī)則

     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;

      }

     },

     //紅邊框及錯(cuò)誤提示

     hilight: function (target, msg) {

      target.addClass("failvalid");

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

       SimpoValidate.tips(target, msg, e);

      });

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

       SimpoValidate.removetips();

      });

     },

     //取消紅邊框及錯(cuò)誤提示

     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="可為空,請?zhí)顚懻麛?shù)"></span>

      </td>

     </tr>

     <tr>

      <td>

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

       <span class="valid" rule="number" msg="必填,請?zhí)顚憯?shù)字"></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、執(zhí)行驗(yàn)證JS代碼:

    //保存數(shù)據(jù)

    function save() {

     if (SimpoValidate.valid()) { //執(zhí)行驗(yàn)證

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

     }

    }

    效果圖:

    名單

    以上就是作者自己動(dòng)手編寫的javascript表單驗(yàn)證插件,希望能夠幫助到大家。

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:擁有一個(gè)屬于自己的javascript表單驗(yàn)證插件
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報(bào)班

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)