[英]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.