[英]e.preventdefault and asp.net login form not working
我試圖僅在https.get函數不會產生錯誤的情況下提交asp.net登錄表單。 如果返回錯誤,我不希望提交登錄表單。 當我調用e.preventDefault()時,登錄頁面只是刷新而無需登錄用戶。
為什么是這樣?
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
});
});
我假設loginForm
是實際的形式,即jQuery中的$('form')。 這與您的函數中的loginSubmit
相同。
請參見,當引發loginSubmit.submit()
事件時,您在內部調用該函數,該函數再次調用loginSubmit.submit()
。 這是個問題嗎?
您可以嘗試將功能綁定到提交按鈕的click事件。
需要有關res.resume()
更多信息。 您能給我們您的loginForm
變量來自哪里嗎?
更新:
我將綁定到“提交”按鈕的click事件。
$(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()
。 但是您現在應該有了一些線索。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.