2013-09-28 3 views
0

Я пытаюсь отправить форму входа asp.net только в том случае, если функция https.get не создает ошибку. Если он возвращает ошибку, я не хочу, чтобы форма входа в систему была отправлена. Когда я вызываю e.preventDefault(), страница входа в систему просто обновляется без входа пользователя в систему.e.preventdefault и форма входа в asp.net не работает

Почему это?

var loginForm = $('form'); 
var https = require("https"); 
var url = 'https://examplesite.com/'; 


loginForm.on('submit', function (e) { 
     var loginSubmit = this; 
     e.preventDefault(); 
      https.get(url, function (res) { 
       res.resume(); 
       loginSubmit.submit(); 
      }).on('error', function() { 
       // display error, do not login 
      }); 
}); 
+0

Что такое 'https.get'? – fiddler

+0

Это часть node.js. Я пингую сервер перед отправкой запроса на вход. Но asp.net не представит форму с приведенным выше кодом. –

+0

Я не понимаю ... этот код работает на стороне клиента или на стороне сервера? – fiddler

ответ

0

Я предполагаю, что loginForm фактическая форма, $ ('форма') в JQuery. То же самое, что и в вашей функции loginSubmit.

См., Когда событие submit() поднято, вы вызываете функцию внутри, которая вызывает снова loginSubmit.submit(). Это проблема?

Вы можете попробовать связать функцию с событием клика кнопки отправки.

Нужна более подробная информация о res.resume(). И не могли бы вы дать нам, откуда приходит ваша переменная loginForm?


UPDATE:

Я хотел бы связать с событием нажатия кнопки подтверждения.

$(document).on('click','btn#submit', function(e){ 
    e.preventDefault(); 
    // make the get call 
    $.get(url) 
     .done(function(){ 
      // success callback => submit the form. 
      $('form').submit(); 
     }) 
     .fail(function(){ 
      // fail callback => display error. 
     }); 
}); 

Я не знаю много о вашей https вызова. И я также не очень понимаю, что ваш res.resume(). Но теперь у вас должна быть какая-то подсказка.

+0

Да, loginForm - $ ('form') в jQuery. Я в основном пытаюсь запустить форму входа через эту функцию https, так что если она вернет true, то она отправит логин или false, не будет. –

+0

Есть ли какая-то особая причина, по которой вы не использовали jQuery для запуска этой функции https? Подобно '$ .get (url) .done (// success) .fail (// fail)'. Но я беспокоюсь о вызове 'loginSubmit.submit()' внутри функции обратного вызова submit. – Blaise

+0

Хороший вопрос, я должен, вероятно, использовать это вместо этого. Как я могу приостановить регистрацию, пока не получу истину или ложь из запроса на получение? –

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