電子メール用と電話番号用の 2 つのフォームがあり、電子メールと電話番号を検証するために内部に 2 つの関数を作成しましたが、送信すると、最初のフォームに関連付けられた関数が使用されます。
私は実際に最初の形式と 2 番目の形式を入れ替えることができ、常にコード内で最初に来るものだけを実行しますが、もう一方は決して実行しません。
<script type="text/javascript">
function validatePhone()
{
var y=document.forms["MyPhone"]["PhoneN"].value;
var Pholen=y.length
if (Pholen < 10)
{
alert("Number must be at last 10 Chars");
return false;
}
}
function validateForm()
{
var x=document.forms["MyMail"]["mailN"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
{
alert("Not a valid e-mail address");
return false;
}
}
</script>
<form name='MyPhone' onsubmit="return validatePhone()" method="post">Phone*: <input type="number" maxlength="10" name='PhoneN' onkeyup="this.value = this.value.replace(/[^0-9]/, '')" size="16">
<form name='MyMail' onsubmit="return validateForm()" method="post">Your Email*: <input type="character" name='mailN' size="16">