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 = '