I’m having issues with the jquery validator validating phone numbers. So in a form where I have an input for phone number, I use jquery’s additional methods to validate the phone. Here’s the code:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>stuff/title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.min.js"></script>
</head>
<body>
<script>
$(document).ready(function(e) {
var val = $('#everything').validate({
onkeyup: false,
errorClass: "req_mess",
ignore: ":hidden",
rules: {
phone: {
required: true,
minlength: 10,
phoneUS: true
}
},
messages: {
phone: {
required: "Please enter your phone number",
phoneUS: "Please enter a valid phone number: (e.g. 19999999999 or 9999999999)"
}
}
});
});
</script>
<form name="everything" id="everything" action="Private/Insert.php" method="post" style="display:none;" >
Phone Number: <input type="text" name="phone" id="phone"/>
</form>
</body>
</html>
And the database ends up looking like this for the phone number column:

Sometimes it inserts the full phone number (crossed out in red) properly, but then sometimes it just inserts 3 digits. I don’t know why. Is this something to do with Internet Explorer maybe? Has anyone come across this problem? Does anyone know why this is happening? Here’s the entirety of the jquery validation code if anyone needs it
You are using the phoneUS validation method for the phone number, which accepts both of the inputs below (examples):
Since the first example is considered valid, you attempt to store it directly into your database, and it seems that you are using an integer or number column. Many databases, including MySQL will attempt to coerce that value into an integer by simply dropping everything after the first non-numeric character. I always recommend using a
varcharfield for storing phone numbers because the numbers don’t really have a numeric meaning (ie you’re never going to add/subtract).Also, it’s a bad idea to simply rely on client side validation. You always want to validate your data on the server side because it’s very trivial to trick client side validation (maliciously or not).