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

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

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

    JS實現(xiàn)支持Ajax驗證的表單插件
    來源:易賢網(wǎng) 閱讀:1128 次 日期:2016-07-16 13:21:04
    溫馨提示:易賢網(wǎng)小編為您整理了“JS實現(xiàn)支持Ajax驗證的表單插件”,方便廣大網(wǎng)友查閱!

    本文為大家分享了一個表單驗證插件,支持ajax驗證,使用起來很簡單。

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

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

    插件代碼:

    CSS:

    .failvalid

    {

      border: solid 2px red !important;

    }

    JS:

    /**

    * 驗證插件

    */

    SimpoValidate = {

      //驗證規(guī)則

      rules: {

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

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

      },

      //初始化

      init: function () {

        $(".valid").each(function () { //遍歷span

          if ($(this)[0].tagName.toLowerCase() == "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 () {

        SimpoValidate.ajaxCheckResult = true;

        var bl = true;

        $(".valid").each(function () { //遍歷span

          if ($(this)[0].tagName.toLowerCase() == "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 && SimpoValidate.ajaxCheckResult;

      },

      //單個驗證,驗證成功返回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");

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

        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;

              }

            }

            if (ajaxAction) {

              SimpoValidate.ajaxCheck(target, val, ajaxAction);

            }

          }

          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;

              }

            }

            if (ajaxAction) {

              SimpoValidate.ajaxCheck(target, val, ajaxAction);

            }

          }

        }

        return true;

      },

      ajaxCheckResult: true,

      ajaxCheck: function (target, value, ajaxAction) {

        var targetName = target.attr("name");

        var data = new Object();

        data[targetName] = value;

        $.ajax({

          url: ajaxAction,

          type: "POST",

          data: data,

          async: false,

          success: function (data) {

            if (data.data == true) {

              SimpoValidate.removehilight(target);

            }

            else {

              SimpoValidate.ajaxCheckResult = false;

              SimpoValidate.hilight(target, data.data);

            }

          }

        });

      },

      //獲取驗證規(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;

        }

      },

      //紅邊框及錯誤提示

      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; z-index:99999; left: 0; top: 0; background-color: #dceaf2; padding: 3px; border: solid 1px #6dbde4; visibility: hidden; line-height:20px; font-size:12px;";

        $("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();

    });

    如何使用:

    Edit頁面:

    @using Model.Suya;

    @{

      ViewBag.Title = "Add";

      Layout = "~/Views/Shared/_Layout.cshtml";

    }

    @{

      List<sys_post> postList = (List<sys_post>)ViewData["postList"];

      sys_post post = (sys_post)ViewData["post"];

    }

    <script type="text/javascript">

      $(function () {

        //部門樹

        $('#dept').combotree({

          url: 'GetDeptTree',

          required: false,

          checkbox: true,

          onLoadSuccess: function () {

            $('#dept').combotree('setValue', "@(post.depCode)");

          }

        });

        //操作結(jié)果

        $("#ifrm").load(function (data) {

          var data = eval("(" + $("#ifrm").contents().find("body").html() + ")");

          alert(data.msg);

          if (data.ok) back();

        });

        $("select[name='postLevel']").find("option[value='@(post.postLevel)']").attr("selected", "selected");

      });

      //保存

      function save() {

        if (valid()) {

          $("#frm").submit();

        }

      }

      //驗證

      function valid() {

        var dept = $("input[name='dept']");

        if (!dept.val()) {

          SimpoValidate.hilight(dept.parent(), "請選擇所屬部門");

        } else {

          SimpoValidate.removehilight(dept.parent());

        }

        return SimpoValidate.valid();

      }

      //返回

      function back() {

        parent.$('#ttTab').tabs('select', "崗位管理");

        var tab = parent.$('#ttTab').tabs('getSelected');

        tab.find("iframe").contents().find("#btnSearch").click();

        parent.$("#ttTab").tabs('close', '修改崗位信息');

      }

    </script>

    <div class="tiao">

      <input type="button" class="submit_btn" value="保存" onclick="save()" />

      <input type="button" class="submit_btn" value="返回" onclick="back()" />

    </div>

    <iframe id="ifrm" name="ifrm" style="display: none;"></iframe>

    <form id="frm" method="post" enctype="multipart/form-data" action="/HR/PostManage/SaveEdit?id=@(post.id)"

    target="ifrm">

    <div class="adminMainContent">

      <div class="box">

        <div class="box-title">

          基礎(chǔ)信息

        </div>

        <div class="box-content">

          <table cellpadding="0" cellspacing="0" class="detail" width="100%">

            <tr>

              <td class="title">

                <span class="mst">*</span>崗位名稱:

              </td>

              <td style="width: 35%;">

                <input type="text" class="xinxi_txt" name="postName" value="@post.postName" />

                <span class="valid" msg="必填,且長度不能超過50" rule="^(.|\n){0,50}$"></span>

              </td>

              <td class="title">

                <span class="mst">*</span>崗位編號:

              </td>

              <td style="width: 35%;">

                <input type="text" class="xinxi_txt" name="postCode" value="@post.postCode" />

                <span class="valid" msg="必填,且長度不能超過20" rule="^(.|\n){0,20}$" ajaxaction="/HR/PostManage/AjaxCheckPostCode?id=@post.id">

                </span>

              </td>

            </tr>

            <tr>

              <td class="title">

                <span class="mst">*</span> 所屬部門:

              </td>

              <td style="width: 35%;">

                <input type="text" name="depCode" id="dept" class="easyui-combotree" style="height: 30px;" />

              </td>

              <td class="title">

                <span class="mst">*</span>匯報對象:

              </td>

              <td style="width: 35%;">

                <select class="xueli" name="reportPostCode" id="agreementType">

                  <option value="" selected="selected">==請選擇==</option>

                  @foreach (sys_post item in postList)

                  {

                    if (item.postCode == post.reportPostCode)

                    {

                    <option value="@item.postCode" selected="selected">@item.postName</option>

                    }

                    else

                    {

                    <option value="@item.postCode">@item.postName</option>

                    }

                  }

                </select>

                <span class="valid" msg="請選擇合同分類">

              </td>

            </tr>

            <tr>

              <td class="title">

                <span class="mst">*</span>崗位級別:

              </td>

              <td style="width: 35%;">

                <select class="xueli" name="postLevel">

                  <option value="" selected="selected">==請選擇==</option>

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

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

                  <option value="3">3</option>

                  <option value="4">4</option>

                  <option value="5">5</option>

                  <option value="6">6</option>

                </select>

                <span class="valid" msg="請選擇崗位級別">

              </td>

              <td class="title">

              </td>

              <td style="width: 35%;">

              </td>

            </tr>

            <tr>

              <td class="title">

                <span class="mst">*</span>備注:

              </td>

              <td colspan="3" style="width: 35%;">

                <textarea name="remarks" style="width: 500px;">@post.remarks</textarea>

                <span class="valid" msg="長度不得超過500" rule="^(.|\n){0,500}$"></span>

              </td>

            </tr>

          </table>

        </div>

      </div>

    </div>

    </form>

    效果圖:

    名單

    以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機網(wǎng)站地址:JS實現(xiàn)支持Ajax驗證的表單插件

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

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