2013-04-18 2 views
0

У меня есть javascript, который «зависает» от экрана при нажатии кнопки отправки. Это делается для остановки двойных кликов.тест, если страница действительна до запуска javascript

Я обнаружил, что существует проблема, если элемент проверки правильности возвращает false, в этом случае экран «заморожен», поэтому пользователь не может устранить проблему с их входными данными.

Мне нужно выяснить, действительна ли эта страница или нет, так что если это не так, я могу отключить экран.

Как это сделать?

Javascript код, который замораживает экран ... (первоначально от 4guysfromrolla)

function FreezeScreen(msg) { 
var outerPane = document.getElementById('FreezePane'); 
var innerPane = document.getElementById('InnerFreezePane'); 
if (outerPane) outerPane.className = 'FreezePaneOn'; 
} 

код, который запускает JavaScript ...

<asp:Button ID="btnSubmit" runat="server" Text="<%$ Resources:LocalizedText, button_SubmitOrder %>" onclick="btnSubmit_Click" ValidationGroup="validateHeader" OnClientClick="FreezeScreen();" /> 
+0

вы можете разместить код, где вы звоните 'FreezeScreen'? –

+0

обязательно ... обновлен! – Stuart

+1

Это зависит от того, что вы используете для проверки. .net валидаторы, jquery validators, ваши собственные собственные? –

ответ

0

Это, вероятно, будет что-то вроде этого.

function ValidatePage() { 
    FreezeScreen(); 

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

    if (Page_IsValid) { 
     UnFreezeScreen(); 
     return true; 
    } 
    else { 
     UnFreezeScreen(); 
     return false; 
    } 
} 

И на кнопку

<asp:Button ID="btnSubmit" runat="server" Text="<%$ Resources:LocalizedText, button_SubmitOrder %>" onclick="btnSubmit_Click" ValidationGroup="validateHeader" OnClientClick="return ValidatePage();" /> 
+0

@Andew Walters это не работает. Это заставляет валидацию и очищает экран замораживания да, но когда проверка прошла успешно, она все еще очищает экран замораживания :( – Stuart

+0

Я получил, вы должны просто потерять вызов, чтобы разморозить внутри, если (Page_IsValid) правильно? –

+0

Это делает но вы должны помнить, что нужно поставить 'return' перед функцией OnClientClick, которую вы называете (да, я пропустил это!). Спасибо за вашу помощь, очень благодарен! – Stuart