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

时间:2013-09-28 02:56:26

标签: javascript jquery asp.net node.js

我只是在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
            });
});

1 个答案:

答案 0 :(得分:0)

我假设loginForm是jQuery中的实际形式,$('form')。这与您函数中的loginSubmit相同。

看看,当引发submit()事件时,你调用里面的函数,再次调用loginSubmit.submit()。这是一个问题吗?

您可以尝试将该功能绑定到提交按钮的点击事件。

需要有关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()。但是你现在应该有一些线索。