Tengo un formulario que contiene una fecha y de fecha y hora campo:del lado del cliente de tipo fecha de entrada no funciona
@Html.TextBoxFor(model => model.A, new { @type = "datetime" })
@Html.TextBoxFor(model => model.B, new { @type = "date" })
Modelo:
public class TestModel
{
[DataType(DataType.Date)]
public DateTime A {get;set;}
[DataType(DataType.Date)]
public DateTime B {get;set;}
}
Mediante el uso de estos tipos de entrada de un iPad muestra agradable selectores de fecha (hora). Los campos se validan utilizando la validación del lado del cliente. Para el campo de fecha y hora (A
) funciona, pero el campo de fecha (B
) generará un error: "ingrese una fecha válida". ¿Cómo puedo solucionar esto?
Ejemplos:
- Este (Safari) valor iPad para datetime es válida (de acuerdo con MVC validación del lado del cliente): 15 Dec. 2011 9:20
- Este valor de iPad (Safari) para la fecha no es válido: 15 de diciembre. 2011
Es difícil depurar el código en un iPad, así que no tengo idea de cómo Safari cambia el formato de fecha cuando se establece el atributo de valor de la entrada.
Edit: Descubrí que el formato de fecha y hora es el formato universal de fecha y hora (yyyy-MM-DDTHH:mmZ
), mientras que el formato de fecha es yyyy-MM-dd
. Probablemente, el validador del lado del cliente comprende el datetime universal y no el yyyy-MM-dd
debido a la localización.
favor dar un ejemplo de entrada para 'B' que plantea el error "por favor introduzca una fecha válida", pero que se considera válido. – phoog
@ Comentario eliminado de Guillaume: es un código HTML válido, pero en realidad no lo manejan todos los navegadores. Como el iPad admite estos tipos de entrada, solo lo uso en una vista de iPad. Para navegadores normales utilizo un jQuery datetime picker. – Marthijn
type = "date" es nuevo en HTML5. ¿Cuál es tu doctype? http://dev.w3.org/html5/markup/input.html – Guillaume