2013-09-28 4 views
0

Я использую функцию $.get, чтобы проверить подключение к серверу перед отправкой формы входа ASP. Если функция get успешно и возвращает значение true, то форма должна быть отправлена, в противном случае, если она терпит неудачу и возвращает false, она не должна.Функция щелчка формы для проверки переменной перед отправкой

Я пробовал много разных конфигураций, но все, что я пробовал, либо отображало кнопку неработоспособной, либо отображало только истину, а никогда не ложную!

Любые советы приветствуются. Благодарю.

<asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Enter" ValidationGroup="LoginUserValidationGroup" class="submitButton" /> 

UPDATE - Приведенный ниже код выполняет функцию некорректным, но у меня есть ощущение, что проблема лежит в пределах $ («формы») представляет();.

Когда возвращается значение true, страница обновляется, как будто она отправляет данные, но система не регистрирует пользователя. Почему это ??

submitButton.click(function() { // capitalize username on login 

      var url = 'https://examplesite.com/'; 

      $.get(url).done(function() { 

       if (usernameBox.val() === '') { 
        usernameBox.attr('placeholder', 'Username Required'); 
        passwordBox.attr('placeholder', ''); 
        usernameBox.focus(); 
        return false; 
       } 
       else if (passwordBox.length && passwordBox.val() === '') { 
        passwordBox.attr('placeholder', 'Password Required'); 
        usernameBox.attr('placeholder', ''); 
        passwordBox.focus(); 
        return false; 
       } 
       else if (passwordBox.length && passwordBox.val().length < 6) { 
        passwordBox.focus(); 
        return false; 
       } 
       else { 
        alert('Successful - Now logging in'); 
        $('form').submit(); 
       } 
      }).fail(function() { 
        alert('Failed - No Connection'); 
      }); 
      return false; 
     }); 
    }; 
+1

Ajax является асинхронным. – undefined

+0

Вы проверяете подключение к Интернету? – Imran

+0

Да, я проверяю подключение к Интернету. –

ответ

1

$.get является функцией асинхронной, так online никогда не устанавливаются на то, что вы думаете, так как остальная часть коды обрабатываются до вызова завершен. Переместите свою логику в часть .done!

$.get(url).done(function() { 
    online = true; 

    if (online == true) { 
     alert('Success'); 
     $('form').submit(); 
    } 
    else if (online == false) { 
     alert('Cannot Connect'); 
     return false; 
    } 
    else { 
     return false; 
    } 
}).fail(function() { 
    online = false; 
}); 
+0

ОК, форма, кажется, не отправляется при вызове $ ('form') из оператора if. –

+0

@ Jrags87 - Любые ошибки в консоли? – tymeJV

+0

Я вообще не получаю никаких ошибок, страница обновляется, как будто она отправляет данные, но она не регистрирует пользователя. –

Смежные вопросы