private function Form::addField in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/symfony/dom-crawler/Form.php \Symfony\Component\DomCrawler\Form::addField()
1 call to Form::addField()
- Form::initialize in vendor/
symfony/ dom-crawler/ Form.php - Adds form elements related to this form.
File
- vendor/
symfony/ dom-crawler/ Form.php, line 446
Class
- Form
- Form represents an HTML form.
Namespace
Symfony\Component\DomCrawlerCode
private function addField(\DOMElement $node) {
if (!$node
->hasAttribute('name') || !$node
->getAttribute('name')) {
return;
}
$nodeName = $node->nodeName;
if ('select' == $nodeName || 'input' == $nodeName && 'checkbox' == strtolower($node
->getAttribute('type'))) {
$this
->set(new Field\ChoiceFormField($node));
}
elseif ('input' == $nodeName && 'radio' == strtolower($node
->getAttribute('type'))) {
// there may be other fields with the same name that are no choice
// fields already registered (see https://github.com/symfony/symfony/issues/11689)
if ($this
->has($node
->getAttribute('name')) && $this
->get($node
->getAttribute('name')) instanceof ChoiceFormField) {
$this
->get($node
->getAttribute('name'))
->addChoice($node);
}
else {
$this
->set(new Field\ChoiceFormField($node));
}
}
elseif ('input' == $nodeName && 'file' == strtolower($node
->getAttribute('type'))) {
$this
->set(new Field\FileFormField($node));
}
elseif ('input' == $nodeName && !in_array(strtolower($node
->getAttribute('type')), array(
'submit',
'button',
'image',
))) {
$this
->set(new Field\InputFormField($node));
}
elseif ('textarea' == $nodeName) {
$this
->set(new Field\TextareaFormField($node));
}
}