Например можно использовать регулярное выражение /^[-\(\)0-9]+$/si
Либо использовать маску для поля вида 8(999)-999-99-99
Использую ее, но несколько раз сталкивался с такой проблемой:
человек вводит номер начиная с 8 и последняя цифра у него не влазит. по невнимательности отправляет такой заказ и в итоге у меня номер без последней цифры в заказе =( можно как-то решить проблему? Например, что бы нельзя было начинать писать номер с восьмерки?
Можно еще добавить плейсхолдер 8(911)-111-11-11, чтобы человек сразу видел пример, после установки курсора в поле ввода появится уже сама маска, причем везде уже будет 8, не заметить конечно трудно, но люди всякие бывают. Можно еще добавить примитивную проверку через джаваскрипт
jQuery('#checkout_customer_main_telephone').live('blur', function(){
var t = jQuery(this).val();
if (t.indexOf('8(8') == 0) {
jQuery(this).parent().append('<span id="twrong" class="simplecheckout-error-text">Неверный код телефона!</span>')
} else {
jQuery('#twrong').remove();
}
jQuery(this).val(t);
});
в файле catalog\view\javascript\simplecheckout.js
после
jQuery(function(){
Не забывайте очищать кеш браузера через CTRL+R