繁体   English   中英

e.preventdefault和asp.net登录表单不起作用

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM