Назначьте два класса valide в одной форме поля ввода


js/prototype/validation.js

У меня есть два класса: проверка-электронная почта, подтвердить -номер мобильного телефона

customer/form/login.phtml

В вводе электронной почты клиент может войти в систему с адресом электронной почты или номером телефона, поэтому я хотел бы сделать следующее: когда пользователь вводит адрес электронной почты, я проверяю класс электронной почты: проверка-электронная почта и если он вводит номер телефона, я проверяю его класс телефона: проверка-номер мобильного телефона

<li>
    <label for="email" class="required"><em>*</em><?php echo $this->__('Email address or phone number')  ?></label>
    <div class="input-box">
         <input type="text" name="login[username]" value="<?php echo $this->escapeHtml($this->getUsername()) ?>" id="email" class="input-text required-entry " title="<?php echo $this->__('Email address or phone number') ?>" />
    </div>
</li>

РЕДАКТИРОВАТЬ: На основа ответа Джеймина Сутарии

В js/prototype/validation.js нам нужно добавить пользовательскую проверку

Validation.add('validate-email-or-phone', 'Please enter a valid Email address or phone number.', function(v) {
return Validation.get('IsEmpty').test(v) || Validation.get('validate-email').test(v) || Validation.get('validate-mobilePhoneNumber').test(v)

})

Author: PЯINCƏ, 2017-03-14

1 answers

Вы можете добиться этого, добавив пользовательскую проверку в поле формы. Добавьте приведенный ниже сценарий проверки в свой файл phtml.

<script type="text/javascript">
//<![CDATA[
    Validation.add('validate-email-or-phone', 'Please enter a valid Email address or phone number.', function(v) {
        return Validation.get('IsEmpty').test(v) || Validation.get('validate-email').test(v) || /^(\+\d{1,3}[- ]?)?\d{10}$/.test(v)
    });
    Translator.add("Please enter a valid Email address or phone number.","<?php echo $this->__("Please enter a valid Email address or phone number."); ?>");
//]]>
</script>

Вам нужно заменить validate-email класс на validate-email-or-phone в текстовом поле. Эта проверка будет проверять адрес электронной почты и номер мобильного телефона, он будет принимать все номера, включенные в этот вопрос.

Вам нужно добавить CSV-файл для перевода.

 2
Author: Jaimin Sutariya, 2020-06-15 08:30:17