Custom Validator - сообщение об ошибке не отображается на переднем конце

Метод Mongoose findById применяет параметр id к типу поля _id модели, чтобы он мог правильно запросить соответствующий документ. Это объект ObjectId, но "foo" не является допустимым ObjectId, поэтому сбой выполняется.

Это не происходит с 41224d776a326fb40f000001, потому что эта строка является допустимым ObjectId.

One способ разрешить это - добавить проверку перед вызовом findById, чтобы узнать, является ли id допустимым ObjectId или нет:

if (id.match(/^[0-9a-fA-F]{24}$/)) {
  // Yes, it's a valid ObjectId, proceed with `findById` call.
}
0
задан Sagittarius009 8 March 2019 в 09:20
поделиться

1 ответ

Я нашел решение своей проблемы. После нескольких дней проб, ошибок и исследований это сработало для меня:

<asp:CustomValidator ID="CustomAddressValidator" runat="server" ClientValidationFunction="CheckAddressValidation" ControlToValidate="txtAddress" CssClass="error-block" Display="Dynamic" SetFocusOnError="True">Cannot contain a PO Box number</asp:CustomValidator>

Также я изменил свой Javascript в одну функцию:

function CheckAddressValidation(sender, args) {
    var address = args.Value;
    var addressPattern = /(p\.?\s?o?\.?\s?b\.?(ox)\.?(\s|[0-9])?|post\soffice)/i;
    if (addressPattern.test(address)) {
        args.IsValid = false;
        return;
    }
    args.IsValid = true;
}

Урок - Другая часть файла CreateProfile.ascx имеет Custom Validator в том же формате, в котором я публиковал изначально. Мои начальники считают, что Microsoft внесла некоторые изменения в это, вероятно, поэтому размещение сообщения об ошибке в теге ErrorMessage , похоже, не работает. Не стесняйтесь поправлять меня, если я где-то ошибаюсь. Но если вы застряли в подобной ситуации, моё решение должно помочь.

0
ответ дан Sagittarius009 8 March 2019 в 09:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: