diff --git a/Fields/Field.php b/Fields/Field.php index 2a6ac4a..c35fd2a 100644 --- a/Fields/Field.php +++ b/Fields/Field.php @@ -86,9 +86,9 @@ public function __sleep() /** * Define an attribute */ - public function setAttribute($name, $value) + public function setAttribute($name, $value, $quote = '"') { - $this->attributes[$name] = $value; + $this->attributes[$name] = ['value' => $value, 'quote' => $quote]; } /** @@ -122,7 +122,7 @@ public function unsetAttribute($name) /** * Function called by the dispatcher */ - public function push($name, $value = null) + public function push($name, $value = null, $quote = '"') { switch ($name) { case 'name': @@ -162,9 +162,9 @@ public function push($name, $value = null) default: if (preg_match('#^([a-z0-9_-]+)$#mUsi', $name)) { if (null !== $value) { - $this->setAttribute($name, $value); + $this->setAttribute($name, $value, $quote); } else { - $this->setAttribute($name, $name); + $this->setAttribute($name, $name, $quote); } } } @@ -314,7 +314,8 @@ public function getHtml() $html = 'attributes as $name => $value) { - $html.= $name.'="'.$value.'" '; + $quote = $value['quote']; + $html.= $name."={$quote}{$value['value']}{$quote} "; } if ($this->required) { @@ -325,7 +326,8 @@ public function getHtml() $html.= 'name="'.$this->getName().'" '; if (($value = $this->getValue()) !== null && gettype($value) != 'object') { - $html.= 'value="'.htmlspecialchars($value).'" '; + $quote = $value['quote']; + $html.= "value={$quote}".htmlspecialchars($value)."{$quote}"; } $html.= '/>'; diff --git a/Fields/Option.php b/Fields/Option.php index 8a1a0cb..b3aa7bc 100644 --- a/Fields/Option.php +++ b/Fields/Option.php @@ -71,7 +71,8 @@ public function getOptionHtml($selected) { $html = '