0

何かが入力された場合に電話番号フィールドを検証するための JavaScript を作成しました (オプションのフィールドです) が、間違った値を入力してもまだ送信されるため、機能していないようです。これが私のコードです:

<script>
function validatePhone()
{ 
var num1 = document.getElementById('workno');

if (num1 !== null)
    {
    regex = /\(\d{2}\)\d{8}/;
    }
if (!num1.match(regex))
    {
    alert('That is not a correct telephone number format');
    return false;
    }
}
 </script>

<form name="eoiform" form method="POST" action="<?php echo $_SERVER["PHP_SELF"];?>" id="eoi" onsubmit="return validatePhone();">

<input type="text" id="workno" name="workno">

<input type="submit" name="submit" id="submit" value="submit">

</form>

誰かが私の間違いを見つけることができますか?

4

3 に答える 3

2

num1変数には、その値ではなく要素オブジェクトが含まれているため、そのままの正規表現でテストすることはできません。

要素が存在しない場合は null になります。値がない場合は "" になります。

function validatePhone()
{ 
  var num1 = document.getElementById('workno').value;
  if (num1 !== "" && !num1.match(/\(\d{2}\)\d{8}/))
  {
    alert('That is not a correct telephone number format');
    return false;
  }
}

form method="POST"HTMLにも無効があります。

于 2013-05-21T15:31:24.817 に答える
0

おそらく、入力から値を選択する必要があります。試してみませんか

if (!num1.value.match(regex))
于 2013-05-21T15:30:47.677 に答える