1

实际上在jsp页面中我使用的是spring标签和jquery代码..听到的是我的代码..

    <form:form action="process">

        <p class="forgot">
            <a href="login/forgotPassword" class="submit_forgotPassword">Forgot your
                password?</a>
        </p>
        <p class="remember">
            <input id="signin_submit" value="Sign in" tabindex="6" type="submit">

        </p>
    </form:form>

<script>
    $('#LOGIN').ajaxForm({
        target : '#body',
        success : function(responseText, statusText, xhr, $form) {
            alert(responseText);
        },
        beforeSubmit : function() {
            $.blockUI({
                message : '<h1> Just a moment...</h1>'
            });
        }
    }); 
    $('.submit_forgotPassword').click(function(event){
        event.preventDefault(); // interrupt default hyperlink behavior
        $("#LOGIN").attr("action",$(this).attr("href"));
        $("#LOGIN").submit();
    });

</script>

问题是提交表单不执行所需的操作

实际上我的代码有两个动作 1. submit2. Forgot Password?

1.第一次我们给出正确的值并点击提交它工作正常..

2.第二次(点击注销后)我们提供emailid并点击forgot Password?链接电子邮件将发送到给定的email id它也可以正常工作......现在问题来了......

第 3.3 次我们给出正确的值并单击提交电子邮件发送到给定的电子邮件(它像第二步一样工作)......

为什么它会这样工作我指定了每个点击处理程序表单......

forgot password?当我们提供正确的值时,每次发送邮件时都单击链接...

给我建议...

4

3 回答 3

1

我的建议是不要使用登录表单操作作为忘记密码处理程序。

$("#LOGIN").attr("action",$(this).attr("href"));
        $("#LOGIN").submit();

如果您有一个忘记密码的页面,为什么不直接重定向到该页面并从那里处理请求?

混淆可能是您使用 ajaxForm 插件建议使用它来提交表单:

// attach handler to form's submit event 
$('#myFormId').submit(function() { 
    // submit the form 
    $(this).ajaxSubmit(); 
    // return false to prevent normal browser submit and page navigation 
    return false; 
});

我会将重置密码视为单独的请求,并获取您希望使用的任何参数,例如用户名作为数据,如下所示:

var queryString = $('#myFormId').formSerialize(); 

这取决于您想要达到的目标。您能解释一下为什么要使用重置密码操作提交表单吗?

我可以看到使用 JSP 没有任何区别。

于 2013-03-27T06:22:38.627 回答
1

您正在将表单操作更改为“忘记密码”链接,同时单击“忘记密码”按钮。我们必须将表单操作恢复为“提交”链接,否则“提交”按钮将发布帖子到“忘记密码”链接。

<script>

    $('#LOGIN').ajaxForm({
        target : '#body',
        success : function(responseText, statusText, xhr, $form) {
            alert(responseText);
        },
        beforeSubmit : function() {
            $.blockUI({
                message : '<h1> Just a moment...</h1>'
            });
        }
    }); 
    $('.submit_forgotPassword').click(function(event){
        event.preventDefault(); // interrupt default hyperlink behavior
        //Save original form submit link before changinf it to forgot password link
        var submitBtnLink = $("#LOGIN").attr("action");
        $("#LOGIN").attr("action",$(this).attr("href"));
        $("#LOGIN").submit();
       //Revert form action to submit link after submitting forgot password
       $("#LOGIN").attr("action",submitBtnLink);
    });

</script>

尝试这个

于 2013-03-27T06:14:29.420 回答
1

您在此处更改了提交 URL:

$('.submit_forgotPassword').click(function(event){
        event.preventDefault(); // interrupt default hyperlink behavior
        $("#LOGIN").attr("action",$(this).attr("href"));
        $("#LOGIN").submit();
    });

因此,您需要在提交点击时重置网址:

 $('#signin_submit').click(function(event){
        event.preventDefault(); // interrupt default hyperlink behavior
        $("#LOGIN").attr("action","login/processLogin");
        $("#LOGIN").submit();
    });
于 2013-03-27T06:25:50.637 回答