Home Web Front-end JS Tutorial An encapsulated universal method for detecting forms_javascript skills

An encapsulated universal method for detecting forms_javascript skills

May 16, 2016 pm 04:18 PM
encapsulation Detection form

Detect validation that the form cannot be empty (.notnull)

Function: When there are multiple (including one) forms under a pair of form tags that need to be submitted, use js to accurately judge the current button and those elements

Usage: Find the container of the current form under the form tag and give it class="form", and the submit button of the current form is given class="check"
Elements that need to be verified as empty are given class="notnull" nullmsg="xx cannot be empty!" prompts, and forms that require logical judgment are given class="need"
The judgment type is given class="num" (can only be a number) verification prompt logicmsg="XX can only be a number"

Give class="errorMessage" to display error message block
Give class="warn" to display error message
Not using js object-oriented programming
Logical judgment, do not pass in the need identifier, directly give the regular expression attribute (custom) regex="/^d$/" to make a judgment

Implemented externally
Global.submitCallback button callback function
Global.confirmCallback confirm callback function;
Areas for improvement:
None

Copy code The code is as follows:

///
*/
//$(document).ready(
// function () {
//        $("form").find(".notnull").bind({
//            focus: function () {
//                      if ($(this).attr("value") == this.defaultValue) {
//                        $(this).attr("value", "");
//               }
//            },
//            blur: function () {
//                    if ($(this).attr("value") == "") {
//                                                        $(this).attr("value", this.defaultValue);
//               }
//           }
//       });
// }
//);
///*Method to encapsulate a universal detection form*/
///event.srcElement: The target object that triggers the event, often used for onclick events.
///event.fromElement: The object source that triggers the event, often used for onmouseout and onmouseover events.
///event.toElement: The target source to which the mouse moves after the event is triggered. It is often used for onmouseout and onmouseover events.
function Global() {
var _self = this;
}
Global.submitCallback = null;
Global.confirmCallback = null;
$(document).ready(function () {
//form body
$("body").find(".form").each(function () {
This.onclick = function (e) {
            var button = null;
             try {
                           button = e.srcElement == null ? document.activeElement : e.srcElement;
              } catch (e) {
console.log(e.message)
                       button = document.activeElement;
            }
If ($(button).is(".check")) {
//alert("submit")
                  var sub = (checkform(this) && CheckInputRex(this) && checkselect(this) && checkChecked(this));
                       if (sub) {
// Call our callback, but using our own instance as the context
Global.submitCallback.call(this, [e]);
                }
                    return sub;
                } else if ($(button).is(".confirm")) {
//alert("delete")
              var sub = confirm($(button).attr("title"));
                       if (sub) {
Global.confirmCallback.call(this, [e]);
                }
                    return sub;
              } else {
                                                                                                                                                                                                                           ​                     return true;
            }
}
});
/*Detect elements that cannot be empty in the form*/
Function checkform(form) {
        var b = true;
           $(form).find(".notnull").each(function () {
If ($.trim($(this).val()).length <= 0) {//|| $(this).val() == this.defaultValue
// if (this.value! = Null) {
//                                                                                                                                                                                                                                                                                                                                                                                                    // //alert($(this).attr("msg"))
                   $(this).parents(".form").find(".warn").text($(this).attr("nullmsg"));
$(this).parents(".form").find(".errorMessage").show();
                     $(this).select();
                    $(this).focus();
                   return b = false;
            }
        });
If (b == true) {
               $(form).find(".warn").text("");
                $(form).find(".errorMessage").hide();
}
         return b;
}
/*Required drop-down list in the detection form*/
Function checkselect(form) {
        var b = true;
           $(form).find(".select").each(function (i) {
              var ck = $(this).find('option:selected').text();
If (ck.indexOf("select") > -1) {
                   $(this).parents(".form").find(".warn").text($(this).attr("nullmsg"));
$(this).parents(".form").find(".errorMessage").show();
                     $(this).select();
                    $(this).focus();
                   return b = false;
            }
        });
         return b;
}
/*Check the required checkboxes in the detection form*/
Function checkChecked(form) {
        var b = true;
​​​​ $(form).find(".checkbox").each(function (i) {
               var ck = $(this)[0].checked;
                if (!ck) {
                   $(this).parents(".form").find(".warn").text($(this).attr("nullmsg"));
$(this).parents(".form").find(".errorMessage").show();
                     $(this).select();
                    $(this).focus();
                   return b = false;
            }
        });
         return b;
}
//Check whether it matches the regular expression
Function GetFlase(value, reg, ele) {
If (reg.test(value)) {
             return true;
}
           $(ele).parents(".form").find(".warn").text($(ele).attr("logicmsg"));
​​​​ $(ele).parents(".form").find(".errorMessage").show();
          $(ele).focus();
          $(ele).select();
          return false; //Cannot submit
}
Function CheckInputRex(form) {
        var b = true;
          $(form).find("input[type='text']").each(function () {
If (typeof ($(this).attr("regex")) == 'string') {
If ($.trim($(this).val()).length > 0 && $(this).val() != this.defaultValue) {
//The value of the current form
                      var value = $(this).attr("value") || $(this).val();
                  var regx = eval($(this).attr("regex"));
                          return b = GetFlase(value, regx, this);
                }
            }
        });
         return b;
}
///Check whether the corresponding characters entered by the user are legal
///This method is obsolete
Function CheckInput(form) {
        var b = true;
$(form).find(".need").each(function () {
If ($.trim($(this).val()).length > 0 && $(this).val() != this.defaultValue) {
//The value of the current form
              var value = $(this).attr("value");
                          //The value of id or the value of the name attribute is such as: [name="contact"]
              var name = $(this).attr("class");
                                 // Check whether the content to be entered is legal, such as: Contact information
              var len = name.split(" ");
for (var i = 0; i < len.length; i ) {
switch ($.trim(len[i])) {
                                                                                                                                                                                                                                                                                                 case "mobile":
                                                                                                                                                                                                                                                       var reg = /^1d{10}$/;
Return b = GetFlase(value, reg, this);
break;
                                                                                                                                                                                                                                             case "email":
var reg = /^[w-] (.[w-] )*@[w-] (.[w-] ) $/;
Return b = GetFlase(value, reg, this);
break;
///Are the two passwords consistent?                                                                                               case "password":
break;
case "password2":
If ($("#password").attr("value") != $("#password2").attr("value")) {
                                                                            $(this).parents(".form").find(".warn").text($(this).attr("logicmsg"));
$(this).parents(".form").find(".errorMessage").show();
                                                                                                                                                                                                                                                                                                                                                       } break;
case "worktel":
case "hometel": //Home phone number
                                                                                                                                                                                                                                                         var reg = /^d{8}$/;
Return b = GetFlase(value, reg, this);
break;
                          case "post": //Postcode
                                            var reg = /^d{6}$/;
Return b = GetFlase(value, reg, this);
break;
case "bonus":
case "allowance":
case "FixedSalary":
var reg = /^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0 |0|[1-9]d)$/;
Return b = GetFlase(value, reg, this);
break;
case "identity":
                            var reg = /(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/;
Return b = GetFlase(value, reg, this);
                            break;
                        case "height":
                            var reg = /^[1-2][0-9][0-9]$/;
                            return b = GetFlase(value, reg, this);
                            break;
                        case "qq":
                            var reg = /^[1-9][0-9]{4,}$/;
                            return b = GetFlase(value, reg, this);
                            break;
                        case "begintime":
                        case "endtime":
                            var reg = /^d{4}$/;
                            if (reg.test(value) && (parseInt($(".endtime").val()) > parseInt($(".begintime").val()))) {
                                return b;
                            }
                            $.ligerDialog.alert($(this).attr("msg"))
                            $(this).select(); //获取焦点
                            return b = false; //不能提交
                            break;
                        case "num":
                            var reg = /^d $/;
                            return b = GetFlase(value, reg, this);
                            break;
                        ///大陆去香港需要办理往来港澳通行证和香港的签注.因私普通护照号码格式有:                                                          
///14/15 7 digits, G 8 digits; ///The common one is: P. 7 digits; ///For official purposes: S. 7 digits or //S 8 digits, starting with D is a diplomatic passport                               case "postport": //Passport number
                               var reg = /^(Pd{7}|Gd{8}|Sd{7,8}|Dd |1[4,5]d{7})$/;
Return b = GetFlase(value, reg, this);
break;
case "bankaccount":
                                    var reg = /^[0-9]{19}$/;
Return b = GetFlase(value, reg, this);
break;
                            } //switch
                                                        //for
            }
        });
         return b;
}
///This method has been deprecated
});
///Click to change the background color
$(document).ready(function () {
var inputs = $("#top>.c>input");
$(inputs).each(function () {
This.onclick = function () {
               document.getElementById("main").style.backgroundColor = this.name;
                    //$("#main").backgroundColor = this.name;
}
});
});



The above code is the encapsulated universal form detection method. I hope you guys like it
Statement of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to implement page jump after PHP form submission How to implement page jump after PHP form submission Aug 12, 2023 am 11:30 AM

How to implement page jump after PHP form submission [Introduction] In web development, form submission is a common functional requirement. After the user fills out the form and clicks the submit button, the form data usually needs to be sent to the server for processing, and the user is redirected to another page after processing. This article will introduce how to use PHP to implement page jump after form submission. [Step 1: HTML Form] First, we need to write a page containing a form in an HTML page so that users can fill in the data that needs to be submitted.

Solution to i7-7700 unable to upgrade to Windows 11 Solution to i7-7700 unable to upgrade to Windows 11 Dec 26, 2023 pm 06:52 PM

The performance of i77700 is completely sufficient to run win11, but users find that their i77700 cannot be upgraded to win11. This is mainly due to restrictions imposed by Microsoft, so they can install it as long as they skip this restriction. i77700 cannot be upgraded to win11: 1. Because Microsoft limits the CPU version. 2. Only the eighth generation and above versions of Intel can directly upgrade to win11. 3. As the 7th generation, i77700 cannot meet the upgrade needs of win11. 4. However, i77700 is completely capable of using win11 smoothly in terms of performance. 5. So you can use the win11 direct installation system of this site. 6. After the download is complete, right-click the file and "load" it. 7. Double-click to run the "One-click

MIT's latest masterpiece: using GPT-3.5 to solve the problem of time series anomaly detection MIT's latest masterpiece: using GPT-3.5 to solve the problem of time series anomaly detection Jun 08, 2024 pm 06:09 PM

Today I would like to introduce to you an article published by MIT last week, using GPT-3.5-turbo to solve the problem of time series anomaly detection, and initially verifying the effectiveness of LLM in time series anomaly detection. There is no finetune in the whole process, and GPT-3.5-turbo is used directly for anomaly detection. The core of this article is how to convert time series into input that can be recognized by GPT-3.5-turbo, and how to design prompts or pipelines to let LLM solve the anomaly detection task. Let me introduce this work to you in detail. Image paper title: Largelanguagemodelscanbezero-shotanomalydete

How to handle user rights management in PHP forms How to handle user rights management in PHP forms Aug 10, 2023 pm 01:06 PM

How to handle user rights management in PHP forms With the continuous development of web applications, user rights management is one of the important functions. User rights management can control users' operating rights in applications and ensure the security and legality of data. In PHP forms, user rights management can be implemented through some simple code. This article will introduce how to handle user rights management in PHP forms and give corresponding code examples. 1. Definition and management of user roles First of all, defining and managing user roles is a matter of user rights.

Improved detection algorithm: for target detection in high-resolution optical remote sensing images Improved detection algorithm: for target detection in high-resolution optical remote sensing images Jun 06, 2024 pm 12:33 PM

01 Outlook Summary Currently, it is difficult to achieve an appropriate balance between detection efficiency and detection results. We have developed an enhanced YOLOv5 algorithm for target detection in high-resolution optical remote sensing images, using multi-layer feature pyramids, multi-detection head strategies and hybrid attention modules to improve the effect of the target detection network in optical remote sensing images. According to the SIMD data set, the mAP of the new algorithm is 2.2% better than YOLOv5 and 8.48% better than YOLOX, achieving a better balance between detection results and speed. 02 Background & Motivation With the rapid development of remote sensing technology, high-resolution optical remote sensing images have been used to describe many objects on the earth’s surface, including aircraft, cars, buildings, etc. Object detection in the interpretation of remote sensing images

How to use JavaScript to implement real-time verification of the input box content of a form? How to use JavaScript to implement real-time verification of the input box content of a form? Oct 18, 2023 am 08:47 AM

How to use JavaScript to implement real-time verification of the input box content of a form? In many web applications, forms are the most common way of interaction between users and the system. However, the content entered by the user often needs to be validated to ensure the accuracy and completeness of the data. In this article, we will learn how to use JavaScript to implement real-time verification of the content of the form's input box and provide specific code examples. Creating the form First we need to create a simple table in HTML

How to use JavaScript to realize the automatic prompt function of the input box content of the form? How to use JavaScript to realize the automatic prompt function of the input box content of the form? Oct 20, 2023 pm 04:01 PM

How to use JavaScript to realize the automatic prompt function of the input box content of the form? Introduction: The automatic prompt function of the form input box content is very common in web applications. It can help users quickly enter the correct content. This article will introduce how to use JavaScript to achieve this function and provide specific code examples. Create the HTML structure First, we need to create an HTML structure that contains the input box and the auto-suggestion list. You can use the following code: &lt;!DOCTYP

TrendForce: Nvidia's Blackwell platform products drive TSMC's CoWoS production capacity to increase by 150% this year TrendForce: Nvidia's Blackwell platform products drive TSMC's CoWoS production capacity to increase by 150% this year Apr 17, 2024 pm 08:00 PM

According to news from this site on April 17, TrendForce recently released a report, believing that demand for Nvidia's new Blackwell platform products is bullish, and is expected to drive TSMC's total CoWoS packaging production capacity to increase by more than 150% in 2024. NVIDIA Blackwell's new platform products include B-series GPUs and GB200 accelerator cards integrating NVIDIA's own GraceArm CPU. TrendForce confirms that the supply chain is currently very optimistic about GB200. It is estimated that shipments in 2025 are expected to exceed one million units, accounting for 40-50% of Nvidia's high-end GPUs. Nvidia plans to deliver products such as GB200 and B100 in the second half of the year, but upstream wafer packaging must further adopt more complex products.

See all articles