@Miguel: It appears you have the RegExp value and the value switched.
Maybe you meant:
$.validator.addMethod('sqldatetime', function (value) {
return value.test(/^(([0-9]{4})-([0-1][0-9])-([0-3][0-9])\s([0-1]
[0-9]|[2]
[0-3]):([0-5][0-9]):([0-5][0-9])|)$/);
}, 'Verifique a data e hora. Use o formato yyyy-mm-dd hh:mm:ss');
On Jun 20, 6:53 am, shapper <[EMAIL PROTECTED]> wrote:
> Hello,
>
> I am trying to validate and mask a text box that should contain a
> DateTime in the following format:
>
> yyyy-mm-dd hh:mm:ss
>
> The validation is not working as expected. The problem is:
>
> In a presence of a valid data I deleted a small part of it (ss). The
> mask is revealed for this part.
> If after deleting a part of the date/time I change the focus to
> another input or submit the form I get:
> 1. A message saying the date/time is invalid (This is expected)
> 2. The entire content of the input disappears. (This is not suppose
> to happen!)
>
> Every time I insert a invalid date I get a message but the date/time
> inserted is deleted. What is going on?
>
> I am testing the date/time in 2 ways: Required and through a method
> that uses Regex:
>
> // Form validation
> $("#Edit").validate({
> rules: {
> UpdatedAt: {
> required: true,
> sqldatetime: true
> }
> },
> messages: {
> UpdatedAt: {
> required: "Insert Date/Time",
> sqldatetime: "Check the date/time. Use the format yyyy-mm-
> dd hh:mm:ss"
> }
> }
> });
>
> And the method sqldatetime is:
>
> $.validator.addMethod('sqldatetime', function (value) {
> return /^(([0-9]{4})-([0-1][0-9])-([0-3][0-9])\s([0-1][0-9]|[2]
> [0-3]):([0-5][0-9]):([0-5][0-9])|)$/.test(value);
>
> }, 'Verifique a data e hora. Use o formato yyyy-mm-dd hh:mm:ss');
>
> The Regex validates only non empty values. If the value is empty it is
> also valid.
> I have made this so that my method does not conflict with Required and
> allow to have the two options only by adding or not the required rule.
>
> I tried to find the problem but wasn't able to.
>
> Any idea what is going wrong?
>
> Thanks,
> Miguel