2017-01-13 56 views
1

我想使用首字母大写验证名称字段。我正在努力做到这一点,一些我是如何做到这一点,但一点问题。问题是所有输入类型字段都包含我的这个代码的第一个字大写还有电子邮件输入。这是我的代码:使用首字母大写验证名称字段

$(document).ready(function() { 
    $('input').on('keydown', function (e) { 
     if (this.value == '') { 
      var char = String.fromCharCode(e.which); 
      if (char.match(/^\w$/)) { 
       // If is empty and we pressed a printable key... 
       this.value = char.toUpperCase(); 
       return false; 
      } 
     } 
    }); 
    $('#00N2800000IA6aX').on('change', function() { 
     if ($(this).val() == 'India') { 
      $('#mobile').attr("maxlength", 10); 
      //set phone value null if you want 
      $('#mobile').val(""); 
      //set phone value 10 digits and remove rest if you want 
      $('#mobile').val($('#mobile').val().substr(0, 10)); 
     } else { 
      $('#mobile').removeAttr("maxlength"); 
     } 
    }); 
    if ($('#00N2800000IA6aX option:selected').val() == 'India') { 
     $('#00N2800000IA6aX').trigger('change'); 
    } 
    $("#abc").click(function() { 
     var first_name = $('#first_name').val(); 
     var email = $("#email").val(); 
     var mobile = $("#mobile").val(); 
     $("#returnmessage").empty(); // To empty previous error/success message. 
     // Checking for blank fields. 
     if (email == '' || mobile == '') { 
      $("#returnmessage").append("<span>Enter Your Name, Vaild E-mail & Mobile No. <span>"); 
      return false; 
     } 
     // To Check Empty Form Fields. 
     if (first_name.length == 0) { 
      $('#head').text("* All fields are mandatory *"); // This Segment Displays The Validation Rule For All Fields 
      $("#first_name"); 
      return false; 
     } 
     // Validating Name Field. 
     if (!first_name.match(name_regex) || first_name.length == 0) { 
      $('#first_name').text("* For your name please use alphabets only *"); 
      //This Segment Displays The Validation Rule For Name 
      $("#first_name").focus(); 
      return false; 
     } 
     var mailPattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]    {2,4})+$/; 
     if (!mailPattern.test(email)) { 
      $("#returnmessage").append("<span>Enter Your Valid Email Address!<span>"); 
      return false; 
     } 
     if ($('#00N2800000IA6aX option:selected').val() == 'India') { 
      var phoneNumberPattern = /^[0-9]{10}$/; 
      if (!phoneNumberPattern.test(mobile)) { 
       $("#returnmessage").append("<span>Enter Your 10 Digits Mobile No Only.<span>"); 
       return false; 
      } 
     } 
    }); 
}); 

回答

0

我会建议不要强制用户并在您的代码中处理它。 只需检查您的名称输入事件,并使其一旦用户更新它的资本。你可以使用下面的功能来做到这一点。

function CapitalizeWord(str) 
{ 
    return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); 
} 

使用

$('#first_name').change(function(){ 
    var text = $this.val(); 
    text = CapitalizeWord(text); 
    $(this).val(text); 
}); 

您可以使用下面的功能,如果你只是想验证,而不是设置输入的值。这个函数会返回true或false,你可以根据返回的标志来编写你的逻辑。

function ValidateCapitalLetter(name) 
{ 
    return /[A-Z]/.test(name[0]); 
} 

编辑

您必须添加上述验证如下

$("#abc").click(function() { 
     var first_name = $('#first_name').val(); 
     var email = $("#email").val(); 
     var mobile = $("#mobile").val(); 
     $("#returnmessage").empty(); // To empty previous error/success message. 
     // Checking for blank fields. 
     if (email == '' || mobile == '') { 
      $("#returnmessage").append("<span>Enter Your Name, Vaild E-mail & Mobile No. <span>"); 
      return false; 
     } 
     // To Check Empty Form Fields. 
     if (first_name.length == 0) { 
      $('#head').text("* All fields are mandatory *"); // This Segment Displays The Validation Rule For All Fields 
      $("#first_name"); 
      return false; 
     } 
     // Validating Name Field. 
     if (!first_name.match(name_regex) || first_name.length == 0) { 
      $('#first_name').text("* For your name please use alphabets only *"); 
      //This Segment Displays The Validation Rule For Name 
      $("#first_name").focus(); 
      return false; 
     } 

     // Validating Name Field for Capital Letter. 
     if (!ValidateCapitalLetter(first_name)) { 
      $('#first_name').text("* For your name please add first letter Capital *"); 

      $("#first_name").focus(); 
      return false; 
     } 
     var mailPattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]    {2,4})+$/; 
     if (!mailPattern.test(email)) { 
      $("#returnmessage").append("<span>Enter Your Valid Email Address!<span>"); 
      return false; 
     } 
     if ($('#00N2800000IA6aX option:selected').val() == 'India') { 
      var phoneNumberPattern = /^[0-9]{10}$/; 
      if (!phoneNumberPattern.test(mobile)) { 
       $("#returnmessage").append("<span>Enter Your 10 Digits Mobile No Only.<span>"); 
       return false; 
      } 
     } 
    }); 
+0

谢谢,但我需要验证名称字段 – Overseas

+0

是的,我已经添加验证代码以及如果名称是大写返回true。如果需要,您可以使用 –

+0

MR。 KD请告诉我在哪里我会把这个代码: – Overseas

1

考虑这个例子..

var x="ebe"; 

if(x[0].charCodeAt()>=97) 
    x[0]=x[0].toUpperCase(); 

charcodeat给人的ASCII值。