Você pode adicionar classe para validação no Magento 2. Veja o exemplo abaixo. Existem quase 72 regras (classe de validação) que você pode usar:
$fieldset->addField(
'email_from',
'text',
['name' => 'email_from', 'label' => __('Email From'), 'title' => __('Email From'), 'required' => true, 'class' => 'validate-email']
);
Consulte o blog para obter uma lista das regras disponíveis para obter mais informações:
Aqui está uma lista de regras de classes de validações suportadas pelo magento 2. Você só precisa adicionar a classe css para que a regra seja aplicada.
min_text_length
max_text_length
max-words
min-words
range-words
letters-with-basic-punc
alphanumeric
letters-only
no-whitespace
zip-range
integer
vinUS
dateITA
dateNL
time
time12h
phoneUS
phoneUK
mobileUK
stripped-min-length
email2
url2
credit-card-types
ipv4
ipv6
pattern
validate-no-html-tags
validate-select
validate-no-empty
validate-alphanum-with-spaces
validate-data
validate-street
validate-phoneStrict
validate-phoneLax
validate-fax
validate-email
validate-emailSender
validate-password
validate-admin-password
validate-url
validate-clean-url
validate-xml-identifier
validate-ssn
validate-zip-us
validate-date-au
validate-currency-dollar
validate-not-negative-number
validate-zero-or-greater
validate-greater-than-zero
validate-css-length
validate-number
validate-number-range
validate-digits
validate-digits-range
validate-range
validate-alpha
validate-code
validate-alphanum
validate-date
validate-identifier
validate-zip-international
validate-state
less-than-equals-to
greater-than-equals-to
validate-emails
validate-cc-number
validate-cc-ukss
required-entry
checked
not-negative-amount
validate-per-page-value-list
validate-new-password
validate-item-quantity
equalTo
Existem 3 maneiras diferentes de usar a validação de formulário no magento 2
Para habilitar a validação de javascript, use o seguinte código no seu modelo
1
2
3
* formulário personalizado é o ID do formulário, você pode substituí-lo pelo seu ID do formulário
Lista de regras de validação de formulário
Para finalizar este artigo, uma lista de nomes de regras de validação é fornecida aqui como uma referência rápida para a documentação oficial:
Regras do Magento:
Regras do jQuery:
consulte http://inchoo.net/magento-2/validate-custom-form-in-magento-2/
fonte
Nos componentes da interface do usuário, ele pode ser usado seguindo a configuração de exemplo (Magento v2.2.0):
Veja mais exemplos no arquivo:
vendor/magento/module-cms/view/adminhtml/ui_component/cms_page_form.xml
A lista de validadores em Componentes da interface do usuário pode ser encontrada em
vendor/magento/module-ui/view/base/web/js/lib/validation/rules.js
.Acabei de escrever este script para pegar todas as chaves com mensagens de erro para explicação:
este é um campo obrigatório.
use apenas letras (az ou AZ), números (0-9) ou espaços apenas neste campo.
especifique um número de telefone válido
Digite um endereço de email válido (por exemplo: [email protected]).
digite um endereço IP v4 válido.
este é um campo obrigatório.
selecione uma opção.
Digite um endereço IP v6 válido.
Digite um horário válido, entre 00:00 e 23:59
digite um número válido neste campo.
Digite um número de telefone válido. Por exemplo (123) 456-7890 ou 123-456-7890.
Digite uma data correta
Digite um identificador XML válido (Ex: something_1, block5, id-4).
insira um URL válido. Por exemplo, http://www.example.com ou www.example.com.
Digite 7 ou mais caracteres, usando tanto numéricos quanto alfabéticos.
tags HTML não são permitidas.
insira um número inteiro válido neste campo.
use apenas letras (az ou AZ), números (0-9) ou sublinhado (_) neste campo, e o primeiro caractere deve ser uma letra.
Digite o número do problema ou a data de início do tipo de switch / cartão solo.
digite pelo menos {0} palavras.
letras, números, espaços ou sublinhados
insira uma chave de URL válida (por exemplo: "página de exemplo", "página de exemplo.html" ou "página de outro nível / página de exemplo").
use apenas letras (az ou AZ), números (0-9), espaços e "#" neste campo.
insira um código postal válido.
insira uma data válida.
Digite um número maior que 0 neste campo.
digite um número válido neste campo.
Digite um número válido de previdência social (Ex: 123-45-6789).
digite um número positivo neste campo.
arquivo que você está tentando enviar excede o limite máximo de tamanho.
Digite um número de fax válido (Ex: 123-456-7890).
Por favor, use a tag SCRIPT com o atributo SRC ou com o conteúdo adequado para incluir JavaScript no documento.
Digite mais ou igual a {0} símbolos.
use este formato de data: dd / mm / aaaa. Por exemplo, 17/03/2006, para 17 de março de 2006.
especifique um número de celular válido
somente letras ou pontuação
o valor não está dentro do intervalo especificado.
especifique um número de telefone válido
a data não está dentro do intervalo especificado.
o valor não está dentro do intervalo especificado.
O número de identificação do veículo especificado (VIN) é inválido.
digite entre {0} e {1} palavras.
Digite um CEP válido (Ex: 90602 ou 90602-1234).
insira endereços de e-mail válidos, separados por vírgulas. Por exemplo, [email protected], [email protected].
insira um comprimento de CSS válido (Ex: 100px, 77pt, 20em, .5ex ou 50%).
seu CEP deve estar no intervalo de 902xx-xxxx a 905-xx-xxxx
digite um número de telefone válido. Por exemplo (123) 456-7890 ou 123-456-7890.
Vul hier een geldige datum in.
letras : somente letras, por favor
digite menos ou igual a {0} símbolos.
digite um número 0 ou mais neste campo.
insira um valor válido, por exemplo: 10,20,30
sem espaço em branco, por favor
Por favor, selecione Estado / Província.
insira um URL válido. É necessário um protocolo (http: //, https: // ou ftp: //).
a data não está dentro do intervalo especificado.
o valor não está dentro do intervalo especificado.
Digite um valor maior ou igual a {0}.
valor vazio.
Digite um número 0 ou maior neste campo.
digite um número de cartão de crédito válido.
Digite um endereço de email válido (por exemplo: [email protected]).
Digite 6 ou mais caracteres. Os espaços à esquerda e à direita serão ignorados.
comprimento mínimo desse campo deve ser igual ou superior a% 1 símbolos. Os espaços à esquerda e à direita serão ignorados.
Digite 6 ou mais caracteres. Os espaços à esquerda e à direita serão ignorados.
Digite um valor menor ou igual a {0}.
insira um valor válido de $. Por exemplo, US $ 100,00.
Digite um horário válido, entre 00:00 e 12:00
Use apenas letras (az ou AZ) ou números (0-9) neste campo. Não são permitidos espaços ou outros caracteres.
não reconhecemos ou suportamos este tipo de extensão de arquivo.
use apenas letras (az), números (0-9) ou sublinhado (_) neste campo, e o primeiro caractere deve ser uma letra.
digite um número de cartão de crédito válido.
digite {0} palavras ou menos.
digite pelo menos {0} caracteres
use apenas letras (az ou AZ) neste campo.
formato inválido.
um número não decimal positivo ou negativo, por favor
O script:
fonte
Se você fizer referência à página / customer / account / create, poderá ver o seguinte trecho de código abaixo do formulário:
E se você verificar os atributos de entrada do formulário, poderá ver o Magento 1 como
class
valores de atributos, juntamente com o novodata-validate
atributo. Esta pode ser a base para acelerar.Arquivos de chaves para validação:
https://raw.githubusercontent.com/magento/magento2/develop/lib/web/mage/validation.js
https://raw.githubusercontent.com/magento/magento2/develop/lib/web/mage/validation/validation.js
fonte
Ao usar os componentes da interface do usuário para criar o formulário, podemos usar a validação como abaixo, funciona no Magento 2.1.x, ainda não o testei em outra versão.
Observe a validação item, em que nós poderíamos adicionar regras de validação , como
required-entry
,validate-integer
etc.Todas as regras de validação que você poderia encontrar em um arquivo
vendor/magento/module-ui/view/base/web/js/lib/validation/rules.js
, comovalidate-date
,validate-emails
etc.fonte
Eu tenho o mesmo requisito para validação de formulário Magento2 e eu fiz este código
Primeiro vamos configurar um formulário de teste
Para habilitar a validação javascript da validação de formulário do Magento2
Referência :: http://www.onlinecode.org/magento2-form-validation-example/
fonte
A opção "no-whitespace" não funciona corretamente (pelo menos no Magento 2.1). Ele dispara uma mensagem de erro em qualquer tipo de caractere "espaço". Os valores "test me" e "test me" retornarão o mesmo erro.
fonte