added several of the new html5 form elements. added support for attributes such as required, autofocus, etc.

This commit is contained in:
Taylor Otwell 2011-07-02 07:37:37 -05:00
parent a9029ddfe9
commit cd33e81702
3 changed files with 75 additions and 1 deletions

View File

@ -19,6 +19,7 @@
'GET /' => function() 'GET /' => function()
{ {
return Form::input('email', 'email', '', array('required', 'class' => 'awesome'));
return View::make('home/index'); return View::make('home/index');
}, },

View File

@ -146,6 +146,7 @@ public static function password($name, $attributes = array())
* Create a HTML hidden input element. * Create a HTML hidden input element.
* *
* @param string $name * @param string $name
* @param string $value
* @param array $attributes * @param array $attributes
* @return string * @return string
*/ */
@ -154,6 +155,71 @@ public static function hidden($name, $value = null, $attributes = array())
return static::input('hidden', $name, $value, $attributes); return static::input('hidden', $name, $value, $attributes);
} }
/**
* Create a HTML email input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
public static function email($name, $value = null, $attributes = array())
{
return static::input('email', $name, $value, $attributes);
}
/**
* Create a HTML URL input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
public static function url($name, $value = null, $attributes = array())
{
return static::input('url', $name, $value, $attributes);
}
/**
* Create a HTML search input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
public static function search($name, $value = null, $attributes = array())
{
return static::input('search', $name, $value, $attributes);
}
/**
* Create a HTML number input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
public static function number($name, $value = null, $attributes = array())
{
return static::input('number', $name, $value, $attributes);
}
/**
* Create a HTML telephone input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
public static function tel($name, $value = null, $attributes = array())
{
return static::input('tel', $name, $value, $attributes);
}
/** /**
* Create a HTML file input element. * Create a HTML file input element.
* *
@ -310,7 +376,7 @@ public static function select($name, $options = array(), $selected = null, $attr
* @param array $attributes * @param array $attributes
* @return string * @return string
*/ */
private static function input($type, $name, $value = null, $attributes = array()) public static function input($type, $name, $value = null, $attributes = array())
{ {
$attributes['type'] = $type; $attributes['type'] = $type;
$attributes['name'] = $name; $attributes['name'] = $name;

View File

@ -227,6 +227,11 @@ public static function attributes($attributes)
foreach ($attributes as $key => $value) foreach ($attributes as $key => $value)
{ {
if (is_numeric($key))
{
$key = $value;
}
if ( ! is_null($value)) if ( ! is_null($value))
{ {
$html[] = $key.'="'.static::entities($value).'"'; $html[] = $key.'="'.static::entities($value).'"';
@ -300,6 +305,8 @@ public static function __callStatic($method, $parameters)
array_unshift($parameters, substr($method, 8)); array_unshift($parameters, substr($method, 8));
return forward_static_call_array('HTML::link_to_route', $parameters); return forward_static_call_array('HTML::link_to_route', $parameters);
} }
throw new \Exception("Static method [$method] is not defined on the HTML class.");
} }
} }