Добавление гиперссылок в ValidationSummary - PullRequest
1 голос
/ 21 июля 2011

У меня есть длинная форма для заполнения пользователями.Есть ли способ гиперссылки сообщения об ошибке в ValidationSummary на конкретное текстовое поле?

Ответы [ 2 ]

1 голос
/ 30 сентября 2015

Я реализовал это раньше таким же образом, как предлагал @jdmonty, добавив теги привязки к каждому атрибуту ErrorMessage RFV. В конце концов мне это показалось слишком утомительным, поэтому я набросал jQuery, чтобы сделать работу за меня. Этот фрагмент обернет ваши сообщения проверки в якорные теги с href=#targetControl, который, конечно, при щелчке прокручивается до целевого ввода.

Добавьте это к $ (document) .ready (); часть кода вашего скрипта.

   var validators = Page_Validators;   // returns collection of validators on page

        $(validators).each(function () {
            //get target control and current error validation message from each validator
            var errorMsg = $(this).context.errormessage;
            var targetControl = $(this).context.controltovalidate;
            var errorMsgWithLink = "<a href='#" + targetControl + "'> " + errorMsg + "</a>";

            //update error message with anchor tag
            $(this).context.errormessage = errorMsgWithLink;
        });

Вы можете добавить несколько дополнительных jQuery, поскольку @jdmonty предлагает сгладить прокрутку. Вы также можете использовать псевдокласс css ': focus' в своей таблице стилей, чтобы добавить стили для 'активных' текстовых полей ввода, что-то вроде input[type=text]:focus{background-color:red;}, чтобы действительно подчеркнуть, когда они сфокусированы.

P.S. Я знаю, что этот вопрос старый, но я только что нашел его сегодня, когда смотрел, придумал ли кто-нибудь более изящное решение, так что для всех, кто на моем месте, идите.

1 голос
/ 21 июля 2011

Самый простой способ сделать это с помощью простых тегов привязки HTML <a>, вы можете включить HTML-код в свойство ErrorMessage вашего элемента управления проверки, которое будет отображаться в вашем элементе управления ValidationSummary.Например,

<asp:ValidationSummary ID="ValidationSummary1" runat="server" />
<asp:Button ID="Button5" runat="server" Text="Submit" />
<br />
<div style="height:800px"></div>
<a name="TextBox1"></a>
Required Field
<asp:TextBox ID="TextBox1" runat="server" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
    ErrorMessage="Required Field is Required <a href='#TextBox1'>Click Here To Go To</a>" 
    Text="***" 
    ControlToValidate="TextBox1" />

Более элегантный подход - объединить описанный выше подход с jQuery, используя функцию scrollTo и, возможно, выделив поле.Вы можете включить этот код jQuery / Javascript в свойство onclick тега привязки.

...