jquery ui datepicker y mvc ver modelo tipo datetime

Resuelto Mindless asked hace 9 años • 3 respuestas

Estoy usando jquery datepicker en mi modelo de vista

Aquí está mi punto de vista:

@Html.TextBoxFor(o => o.JobStartDate, new { id = "dt1", @class = "input-block-level" })
@Html.ValidationMessage("JobStartDate")

y mi guión:

$("#dt1").datepicker({ dateFormat: "dd/mm/yy" });

Todo funciona bien si mi fecha es <= 12, si mi fecha es mayor de 12, me mostrará un mensaje de error de validación que dice "El campo Fecha de inicio debe ser una fecha". (Estoy usando la validación de jquery)

Por ejemplo: fecha 16/12/2014 me dará el error mientras que 12/12/2014 no

Aquí está mi modelo de vista:

[Required]
[DataType(DataType.Date)]
[Display(Name = "Start Date")]
public DateTime JobStartDate { get; set; }

Sospecho que mi modelo de vista anticipa una fecha en el formato mm/dd/aaaa mientras que en mi selector de fecha especificé dd/mm/aa, ¿hay alguna manera de decirle a mi modelo de vista que estoy esperando el formato dd/mm/aa? que no arroja un mensaje de error si la fecha es >= 12.

Mindless avatar Dec 04 '14 09:12 Mindless
Aceptado

Puede considerar el uso de jquery globalize o agregar lo siguiente a su secuencia de comandos (suponiendo, por supuesto, que el formato de fecha cultural del servidor sea 'dd/MM/yyy')

$.validator.addMethod('date', function (value, element) {
  if (this.optional(element)) {
    return true;
  }
  var valid = true;
  try {
    $.datepicker.parseDate('dd/mm/yy', value);
  }
  catch (err) {
    valid = false;
  }
  return valid;
});
$('#dt1').datepicker({ dateFormat: 'dd/mm/yy' });

y por favor usa@Html.ValidationMessageFor(m => m.JobStartDate)

 avatar Dec 04 '2014 05:12