0

3 つの要素を持つフォームがあります。ユーザーが入力したときに電話番号を検証したい。ユーザーが次の要素に移動し、電話番号に数字以外の文字が含まれている場合、アラートボックスを表示したいと思います。

私はいくつかのコードを書きましたが、完全に困惑しています。私が自分の関数で抱えている問題は、電話番号要素に数字だけを入力しても、アラート ボックスが表示されることです。私のコードは次のようになります。

<script type="text/javascript">
function validateForm()
{
checkNr= isNaN(document.forms[0].elements[1])
if(checkNr == true)
{
window.alert("You can only enter numbers. Please try again")
}
} 
</script>

<form>
  <strong>FULLNAME: </strong><input type="text" / id="name"><br />
  <strong>PHONE NR: </strong><input type="text" id="phone"  onblur="validateForm()" />
  <strong>NATIONALITY</strong><input type="text" id="nat" /><br />
  <input type="button" id="subButton" onclick="calc()" value="Submit" />
</form>

すべての回答とヘルプに感謝します。

4

3 に答える 3

4

変化する

document.forms[0].elements[1]

document.forms[0].elements[1].value

要素の値ではなく、要素自体をテストしていました。

jsFiddle の例

ところで、誰かがハイフンや括弧を使って電話番号を入力した場合 (例: (555) 123-4567)、どうなると思いますか?

于 2013-05-02T14:09:11.217 に答える
1

ここでは、目標を達成するための多くの例を見つけることができます:

たとえば、 number のみを使用できる場合:

function phonenumber(inputtxt)  
{  
  var phoneno = /^\d{10}$/;  
  if((inputtxt.value.match(phoneno))  
        {  
      return true;  
        }  
      else  
        {  
        alert("message");  
        return false;  
        }  
}
于 2013-05-02T14:10:39.300 に答える
0

正規表現で行う必要があります。ここを参照してください:

電話番号検証のための包括的な正規表現

JavaScript で電話番号を検証する

于 2013-05-02T14:07:53.300 に答える