Визначте, чи дійсна сторінка в JavaScript - ASP.NET


80

Який найкращий спосіб визначити, чи форма на сторінці ASPX дійсна в JavaScript?

Я намагаюсь перевірити перевірку керування користувачем, яке було відкрито за допомогою JavaScript, window.showModalDialog()і перевірка властивості 'Page.IsValid' на стороні сервера не працює. Я використовую засоби перевірки ASP.NET для перевірки сторінок.

Відповіді:


173

Якщо у мене є сторінка, яка використовує купу контрольних елементів перевірки ASP.NET, я буду використовувати код, подібний до наведеного нижче, для перевірки сторінки. Зробіть дзвінок на вхідному поданні. Сподіваємось, цей зразок коду допоможе вам розпочати роботу!

    <input type="submit" value="Submit" onclick"ValidatePage();" />

    <script type="text/javascript">

    function ValidatePage() {

        if (typeof (Page_ClientValidate) == 'function') {
            Page_ClientValidate();
        }

        if (Page_IsValid) {
            // do something
            alert('Page is valid!');                
        }
        else {
            // do something else
            alert('Page is not valid!');
        }
    }

</script>

2
Ви відповідаєте плюс читаючи наступний допис: velocityreviews.com/forums/… допоміг мені вирішити мою проблему.
Michael Kniskern

1
Як я можу змінити наведений вище код, якщо на сторінці у мене є кілька груп перевірки, і мені просто потрібно перевірити, чи дійсна одна група?
Muffin Man

5
Оновлення - Я вилучив Page_ClientValidate()дзвінок, і воно працює :)
Людина

Див. Також stackoverflow.com/a/3062770/292060 для аргументів цього виклику, звертаючись до декількох груп перевірки.
goodeye

1
Ви такий великий агеррік. Дякую.
Jonas T

10

Ви перевіряєте, Page.IsValidде слід перевіряти Page_IsValid(це змінна, виставлена ​​валідаторами .NET) :)


Я забув згадати, що перевіряв властивість Page.IsValid на стороні сервера на ньому не працювало.
Michael Kniskern

7

Елементи контролю перевірки ASP.NET надають API на стороні клієнта, який можна використовувати з javascript: http://msdn.microsoft.com/en-us/library/aa479045.aspx

Ви повинні мати можливість перевірити об’єкт Page_IsValid, щоб побачити, чи є якийсь із засобів перевірки недійсним.


3
$("input[id$=Button2]").click(function () {
    var validated = Page_ClientValidate('repo');
    if (validated) {
        // JavaScript code.
    }
});

1

Ви можете використовувати jQuery та плагін перевірки для перевірки на стороні клієнта. Це буде працювати як з тегами html, так і з елементами керування сервером asp.net. Філ Хак має хороший зразок проекту, який покаже вам основи.

Це питання SO також має глибокий огляд цього підходу.


1

Встановіть ValidationGroupвластивість для кожного asp.netелемента контролю валідатора на вашій сторінці, і ви повинні вказати те саме ім'я на ValidationGroupсторінці.

Наприклад:

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required" ValidationGroup="Validate"></asp:RequiredFieldValidator>
    <asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="RangeValidator" ValidationGroup="Validate"></asp:RangeValidator>
    <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="CustomValidator" ValidationGroup="Validate"></asp:CustomValidator>

Після цього у вашому javascript зателефонуйте як Page_ClientValidate("ValidationGroup")

Наприклад:

function ValidatePage(){
if(Page_ClientValidate("Validate")){ //validate using above validation controls group
      //validation return true section
}
else{
      //validation return false section
}
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.