Ich versuche, einem Formular mit FAPI einen Feldtyp "Zahl" hinzuzufügen:
$form['phone_number']['areacode'] = array(
'#type' => 'textfield',
'#title' => '---',
'#width' => '30%',
'#align' => 'center',
'#required' => true,
'#maxlength' => 3
);
Ich ändere den TYP in "Zahl" und das Feld wird überhaupt nicht generiert. Das Nummernmodul ist aktiviert. Ich habe die folgenden Themenfunktionen implementiert:
MYTHEME_form_element
MYTHEME_textfield
MYTHEME_container
Was könnte sich dahinter befinden, wenn dieses Feld nicht angezeigt wird, wenn ich #type = number
oder #type = number_integer
usw. verwende?
Das könnte etwas damit zu tun haben:
Ich möchte jedoch, dass der Typ in HTML als "Zahl" dargestellt wird, sodass Smartphones einen numerischen Dialer aufweisen
Irgendwelche Ideen?
<input type="number" type="text">
Sie können das Modul Elements dafür installieren und verwenden .
quelle
#type="numberfield"
ist der richtige Weg, um das Feld anzupassen, wenn Sie dieses Modul verwenden.'#type' => 'number'
(nicht'numberfield'
) im Render-Array zu verwenden.Ich bin ein bisschen zu spät zur Party. Das Problem ist, dass theme_textfield (D7
includes/form.inc
:, Zeilen 3924ff) Hardcodes enthält$element['#attributes']['type'] = 'text';
.Sie können den besagten Anruf in einen
if (!isset($element['#attributes']['type'])) { ... }
abwickeln oder warten, bis der Patch https://www.drupal.org/node/2545318 angewendet wird.quelle
Dies ist Ihr Code unten ..
Bitte sagen Sie mir, was ['phone_number'] ist, ob es sich um einen Container handelt oder nicht oder ob er in Ihrem Formular existiert oder nicht. Wenn Sie ein benutzerdefiniertes Feld in Ihrem Formular erstellen möchten, sollten Sie hook_form_alter hook_form_alter verwenden
mögen
hoffe das hilft dir ..
quelle
Ich sehe nicht, dass es mit einem ungültigen Wert für das Feld #type funktioniert. Sie können jedoch Folgendes tun:
Das Formularelement:
Und das Implementieren von theme_textfield
quelle