Estou tentando adicionar um tipo de campo "número" a um formulário usando a FAPI:
$form['phone_number']['areacode'] = array(
'#type' => 'textfield',
'#title' => '---',
'#width' => '30%',
'#align' => 'center',
'#required' => true,
'#maxlength' => 3
);
Eu mudo o TYPE para "number" e o campo não é gerado. O módulo numérico está ativado. Eu implementei as seguintes funções de tema:
MYTHEME_form_element
MYTHEME_textfield
MYTHEME_container
O que poderia estar por trás desse campo não aparecer quando eu uso #type = number
ou #type = number_integer
etc?
Isso pode ter algo a ver com isso:
Criando campos de números (inteiro e decimal) manualmente no código para formulários personalizados
No entanto, na verdade, eu quero que o tipo seja renderizado como "número" em HTML para que os smartphones mostrem um discador numérico
Alguma ideia?
<input type="number" type="text">
Você pode instalar e usar o módulo Elements para isso.
fonte
#type="numberfield"
é a maneira correta de ajustar o campo ao usar este módulo.'#type' => 'number'
(não'numberfield'
) na matriz de renderização.Estou um pouco atrasado para a festa. O problema é que theme_textfield (D7
includes/form.inc
:, linhas 3924ff) codifica$element['#attributes']['type'] = 'text';
.Você pode encerrar a chamada em
if (!isset($element['#attributes']['type'])) { ... }
ou aguardar a aplicação do patch https://www.drupal.org/node/2545318 .fonte
este é o seu código abaixo ..
diga-me o que é ['phone_number'], é um contêiner ou não, ou existe em seu formulário ou não, e se você deseja criar um campo personalizado em seu formulário, use hook_form_alter hook_form_alter
gostar
espero que isso ajude você ..
fonte
Não o vejo funcionando com valor inválido para o campo #type , mas você pode fazer algo assim:
O elemento do formulário:
E implementando theme_textfield
fonte