简体   繁体   English

验证 10 位手机号码并将输入字段聚焦在无效上

[英]Validation for 10 digit mobile number and focus input field on invalid

I need the code for validating email and mobile number in jQuery and also focus() on that particular field where validations are not satisfied.我需要在 jQuery 中验证电子邮件和手机号码的代码,并且还需要在不满足验证的特定字段上使用focus()

This is my query这是我的查询

<form name="enquiry_form" method="post" id="enquiry_form">

    Full Name *
    <input class="input-style" name="name"  id="name" type="text" required> 
    Email *
    <input class="input-style" name="email"  id="email" type="email" required>
    Phone * 
    <input name="mobile"  id="mobile" type="number" required>

    <input type="submit" value="SUBMIT"  id="enq_submit"">

</form>

Above code is correct but mobile validation is not perfect.上面的代码是正确的,但移动验证并不完美。

i modified as我修改为

$('#enquiry_form').validate({
  rules:{
  name:"required",
  email:{
  required:true,
  email:true
  },
  mobile:{
      required:true,
  minlength:9,
  maxlength:10,
  number: true
  },
  messages:{
  name:"Please enter your username..!",
  email:"Please enter your email..!",
      mobile:"Enter your mobile no"
  },
  submitHandler: function(form) {alert("working");
  //write your success code here  
  }
  });

for email validation, <input type="email"> is enough..对于电子邮件验证, <input type="email">就足够了..

for mobile no use pattern attribute for input as follows:对于移动不使用输入模式属性如下:

<input type="number" pattern="\d{3}[\-]\d{3}[\-]\d{4}" required>

you can check for more patterns on http://html5pattern.com .您可以在http://html5pattern.com上查看更多模式。

for focusing on field, you can use onkeyup() event as:为了专注于领域,您可以使用 onkeyup() 事件作为:

function check()
{

    var mobile = document.getElementById('mobile');
   
    
    var message = document.getElementById('message');

   var goodColor = "#0C6";
    var badColor = "#FF9B37";
  
    if(mobile.value.length!=10){
       
        mobile.style.backgroundColor = badColor;
        message.style.color = badColor;
        message.innerHTML = "required 10 digits, match requested format!"
    }}

and your HTML code should be:并且您的 HTML 代码应该是:

<input name="mobile"  id="mobile" type="number" required onkeyup="check(); return false;" ><span id="message"></span>

I used $form.submit() as it keeps html input validation.我使用 $form.submit() 因为它保持 html 输入验证。

Also I used input type tel as it supported by mobile browsers, only display numeric keypad.我还使用了移动浏览器支持的输入类型 tel,只显示数字键盘。

<input type="tel" minlength="10" maxlength="10" id="mobile" name="mobile" title="10 digit mobile number" required>


$('#mob_frm').submit(function(e) {
            e.preventDefault();
            if(!$('#mobile').val().match('[0-9]{10}'))  {
                alert("Please put 10 digit mobile number");
                return;
            }  

        });

you can also use jquery for this您也可以为此使用 jquery

  var phoneNumber = 8882070980;
            var filter = /^((\+[1-9]{1,4}[ \-]*)|(\([0-9]{2,3}\)[ \-]*)|([0-9]{2,4})[ \-]*)*?[0-9]{3,4}?[ \-]*[0-9]{3,4}?$/;

            if (filter.test(phoneNumber)) {
              if(phoneNumber.length==10){
                   var validate = true;
              } else {
                  alert('Please put 10  digit mobile number');
                  var validate = false;
              }
            }
            else {
              alert('Not a valid number');
              var validate = false;
            }

         if(validate){
          //number is equal to 10 digit or number is not string 
          enter code here...
        }

After testing all answers without success.在测试所有答案后没有成功。 Some times input take alpha character also.有时输入也带字母字符。

Here is the last full working code with only numbers input also keeping in mind backspace button key event for user if something number is incorrect.这是最后一个完整的工作代码,只有数字输入,如果数字不正确,还要记住用户的退格按钮事件。

 $("#phone").keydown(function(event) { k = event.which; if ((k >= 96 && k <= 105) || k == 8) { if ($(this).val().length == 10) { if (k == 8) { return true; } else { event.preventDefault(); return false; } } } else { event.preventDefault(); return false; } });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input name="phone" id="phone" placeholder="Mobile Number" class="form-control" type="number" required>

Use jquery validator in your script tag DEMO在脚本标记DEMO 中使用 jquery 验证器

<script src="js/jquery.validate.min.js"></script> 

and validate your element by like this并通过这样验证您的元素

   <form name="enquiry_form" method="post" id="enquiry_form">

    Full Name *
    <input class="input-style" name="name"  id="name" type="text"/>
    <br>
    Email *
    <input class="input-style" name="email"  id="email" type="email"><br>
    Phone * 
        <input id="mobile" name="mobile"  id="mobile"></input><br>

    <input type="submit" value="SUBMIT"  id="enq_submit">

</form>

 $('#enquiry_form').validate({
      rules:{
      name:"required",
      email:{
      required:true,
      email:true
      },
      mobile:{
          required:true,
      minlength:9,
      maxlength:10,
      }
      },
      messages:{
      name:"Please enter your username..!",
      email:"Please enter your email..!",
          mobile:"Enter your mobile no"
      },

      submitHandler: function(form) {
alert("working");
      //write your success code here  
      }
      });

function is_mobile_valid(string_or_number){
            var mobile=string_or_number;
            if(mobile.length!=10){
                return false;

            }
            intRegex = /[0-9 -()+]+$/;
            is_mobile=true;
            for ( var i=0; i < 10; i++) {
                if(intRegex.test(mobile[i]))
                     { 
                     continue;
                     }
                    else{
                        is_mobile=false;
                        break;
                    }
                 }
            return is_mobile;

}

You can just check by calling the function is_mobile_valid(your_string_of_mobile_number);您可以通过调用函数is_mobile_valid(your_string_of_mobile_number);检查is_mobile_valid(your_string_of_mobile_number);

function isMobileNumber(evt, sender) { // Allows only 10 numbers // ONKEYPRESS FUNCTION
//evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
var NumValue = $(sender).val();
if (charCode > 31 && (charCode < 48 || charCode > 57)) {//|| NumValue.length > 9) {
    return false;
}
return true;}


function isProperMobileNumber(txtMobId) { //// VALIDATOR FUNCTION   
var txtMobile = document.getElementById(txtMobId);
if (!isNumeric(txtMobile.value)) { $(txtMobile).css("border-color", "red"); return false; }
if (txtMobile.value.length < 10) {
    $(txtMobile).css("border-color", "red");
    return false;
}
$(txtMobile).css("border-color", "")
return true; }

function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n) }

 var message = document.getElementById('contact-error'); $('#contact').focusout(function(){ if(!$(this).val().match('[0-9]{10}')) { $('#contact-error').addClass('contact-message'); message.innerHTML = "required 10 digits, match requested format!"; }else { $('#contact-error').removeClass('contact-message'); message.innerHTML = ""; } })
 .contact-message { display: block; margin-bottom: 20px; color: #cc0033; }
 <input type="text" id="contact" required> <span id="contact-error"></span>

$().ready(function () { $().ready(function () {

    $.validator.addMethod(
            "tendigits",
            function (value, element) {
                if (value == "")
                    return false;
                return value.match(/^\d{10}$/);
            },
            "Please enter 10 digits Contact # (No spaces or dash)"
            );

    $('#frm_registration').validate({
        rules: {
            phone: "tendigits"
        },
        messages: {
            phone: "Please enter 10 digits Contact # (No spaces or dash)",

        }

    });

})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 验证 10 位手机号码并在输入时显示颜色(如果无效) - Validation for 10 digit mobile number and Showing Color On Input If Invalid 如何使用 jQuery 验证 10 位手机号码 - How to do validation for 10 digit mobile number Using jQuery 包含+ ** ***-***-****的电话号码验证(加号后加上两位数字的国家/地区代码和10位数字的移动电话号码) - Phone number validation which contains +** ***-***-**** (Plus following with Two digit country code with 10 digit mobile number) 如何聚焦无效的输入字段 - How to focus invalid input field 使用或输入字段的条件掩码输入验证以输入 5 位或 9 位: - Mask Input validation with or condition for input field to enter either 5 digit or 9 digit: 手机号码需要正则表达式以 61 到 99 开头,10 位数字 - Need regex for mobile number start with 61 to 99 with 10 digit number 在 Javascript 的输入字段编号中查找特定数字 - Find specific digit in a input field number in Javascript 以编程方式关注移动 Safari 中的下一个输入字段 - Programmatically focus on next input field in mobile safari 如何将 mongodb 中的 10 位数字字段转换为字符串字段 - how to convert 10 digit number field to string field in mongodb 从javascript中的字符串中提取10位手机号码的正则表达式 - Regular expression to extract a 10 digit mobile number from string in javascript
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM