そのため、HTML5 パターン属性で iPhone の数字パッドに最小限の正規表現 [0-9]* を使用しています。サーバー経由でメールを送信する送信機能もありました。ブラウザーが間違ったユーザー入力に基づいて送信をブロックしようとしているかどうかに関係なく、フォームを送信しようとしていることに気付くまで、すべてがうまく機能していました。
そのため、次のことを行いましたが、機能しません。
<script>
function validate(){
var phone=/[0-9]*/;
var x=document.forms["form"]["contactnum"].value;
if (x!=phone){
alert("Contact Number must be a valid phone number (no dashes)");
return false;
}
else {
alert("Thank you! We have received your information and will contact you shortly.");
ajax('{{=URL('new_post')}}',['phone'], 'target');
return false;
}
}
</script>
問題は、if ステートメントで if (x==null || x=="") を設定した場合にのみ機能することです。他の変数と一致させようとすると、常に [0-9]* と一致していないと表示されます。私はすでにいくつかの複雑な正規表現を書いていますが、この単純なフォームでは何も使いたくありません。iPhone の数字パッドが欲しかっただけで、それが数字または null でない場合は送信しませんでした。数字である限り、電話番号に「2」を入力してもかまいません。
ありがとう。