Ненавязчивая проверка ASPNET MVC 3 и проверка на стороне клиента не работают с плагином placeHolder jQuery - PullRequest
0 голосов
/ 11 ноября 2011

Я пытаюсь использовать ненавязчивую проверку с проектом ASPNET MVC 3 и плагином placeHolder jQuery следующим образом:

[StringLength(20)]
[OnlyNumbersValidation(ErrorMessage = " ")]
[DisplayName("Fax n°")]
public string Fax { get; set; }

@Html.TextBoxFor(model => model.Fax, new { @class = "txt-input", placeholder = "Eg. Fax n°", maxlength = 31 })
@Html.ValidationMessageFor(model => model.Fax, "*", new { @class = "redtxt" })


public class OnlyNumbersValidationAttribute : RegularExpressionAttribute, IClientValidatable
{
    public OnlyNumbersValidationAttribute()
        : base(@"^\d+$")
    {
    }

    public IEnumerable<ModelClientValidationRule> GetClientValidationRules(ModelMetadata metadata, ControllerContext context)
    {
        {
            var errorMessage = FormatErrorMessage(metadata.GetDisplayName());

            yield return new OnlyNumbersValidationRule(errorMessage);
        }
    }

    public class OnlyNumbersValidationRule : ModelClientValidationRule
    {
        public OnlyNumbersValidationRule(string errorMessage)
        {
            ErrorMessage = errorMessage;
            ValidationType = "digits";
        }
    }
}

Проблема заключается во взаимодействии между MVC 3 и плагином placeHolder, поскольку, если я не ввожу никакого значения (а placeHolder отображается с текстом «Например, факс n °», он «думает», что я ввел неверный ввод, потому что этот текст состоит из букв, а не только цифр.

Есть идеи как это исправить?

Заранее спасибо! Гильермо.

Ответы [ 2 ]

0 голосов
/ 03 августа 2012

Обновление заполнитель Плагин решил мою проблему

0 голосов
/ 22 ноября 2011

Исправление ошибки, связанной с размещением вложенных форм на html-странице и перемещением пользовательского валидатора в другой класс, решило проблему. Спасибо.

...