Итак, я использую минимальное регулярное выражение [0-9]* для цифровой клавиатуры iPhone в атрибутах шаблона HTML5. У меня также была функция отправки, которая отправляет электронное письмо через сервер. Все работало хорошо, пока я не понял, что он пытается отправить форму независимо от того, пытался ли браузер заблокировать отправку на основе неправильного ввода пользователя.
Итак, я сделал следующее, но не могу заставить его работать:
<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 (x==null || x=="") в if утверждение. Если я попытаюсь сопоставить его с любой другой переменной, он всегда будет говорить, что я не сопоставляю [0-9] *. Я уже написал несколько сложных регулярных выражений, но на самом деле не хочу ничего использовать в этой простой форме. Я просто хотел цифровую клавиатуру на iPhone и не отправлять, если это не цифра или нуль. Меня даже не волнует, если они вставят «2» для телефона, лишь бы это была цифра.
Спасибо.