Определить, является ли страница действительной в JavaScript - ASP.NET

Каков наилучший способ определить, действительна ли форма на странице ASPX в JavaScript?

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

Ответ 1

Если у меня есть страница, использующая кучу элементов управления проверки ASP.NET, для проверки страницы я буду использовать код, аналогичный приведенному ниже. Сделайте вызов на входе submit. Надеюсь, этот пример кода поможет вам начать работу.

    <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

Вы проверяете Page.IsValid, где вы должны проверять Page_IsValid (это переменная, отображаемая с помощью проверочных файлов .NET):)

Ответ 3

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

Вы должны проверить объект Page_IsValid, чтобы проверить, недействительны ли какие-либо элементы проверки.

Ответ 4

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

Ответ 5

Вы можете использовать jQuery и Validation для выполнения проверки на стороне клиента. Это будет работать как с тегами html, так и с элементами управления asp.net. У Фила Хаака есть хороший примерный проект, который покажет вам основы.

В этом вопросе SO) есть углубленный обзор этого подхода.

Ответ 6

Задайте свойство 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
}
}