テキストボックスの値を検証する必要があります。テキストボックスは、0123456789の形式の顧客の電話番号用です(つまり、10個の番号のみであり、番号を入力している間、ユーザーがアルファベットや特殊記号を追加できないことを意味します)
データは、フォームのPOSTメソッドを介してページ(validate.php)に送信されます。
文字や文字を使わずに、10個の数字を次々と受け入れる関数が欲しいです。
たとえば、preg_matchを使用できます
preg_match('/^[0-9]{10}$/', $_POST['your-value']);
AVDが述べたように、PHPスクリプトで正規表現を使用するか、jQueryの検証プラグインを使用してユーザーがフォームを送信できないようにすることができます。
HTML
<form name="contact" id="contact">
<input name="number" id="number" />
</form>
jQUery
$("#contact").validate({
rules: {
number: {
required: true,
minlength: 10,
numeric: true
}
},
messages: {
number: {
required: "Enter a phone number",
minlength: "The phone number is too short",
numeric: "Please enter numeric values only"
}
}
})
詳細については、jQuery/Validationをご覧ください。
私はこれがあなたのために働くと思います:
<html>
<head>
<script type="application/javascript">
function isNumberKey(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
</script>
</head>
<body>
<input type="text" name="tel_num" value="" onkeypress="return isNumberKey(event)" maxlength="10"/>
</body>
</html>
これを試して。各キー入力のエントリを検証します
HTML:
<input size="10" maxlength="10" type="text" name="p_len" id="p_len" value="" onkeyup="check(this)" />
Javascript:
function check(o) {
v=o.value.replace(/^\s+|\s+$/,''); // remove any whitespace
if(o=='') {
return;
}
v=v.substr(v.length-1);
if(v.match(/\d/g)==null) {
o.value=o.value.substr(0,o.value.length-1).replace(/^\s+|\s+$/,'');
}
}
入力され、長さが10に制限されるとすぐに、数字以外の入力が削除されます。
お役に立てれば。