1

実際、jspページでは、スプリングタグとjqueryコードを使用しています。Hearは私のコードです。

    <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>

問題は、フォームを送信して必要なアクションを実行しないことです

実際、私のコードには2つのアクション1. submit2. Forgot Password?があります。

1.初めて正しい値を指定し、[送信]をクリックすると完全に機能します。

2. 2回目(クリックログアウト後)にemailidを指定し、クリックforgot Password?リンクの電子メールが指定された電子メールIDに送信されます。これも完全に機能しています...問題が発生しました...

3.3正しい値を指定し、[指定された電子メールに送信する電子メールを送信]をクリックしたとき(2番目のステップのように機能しています)...

なぜこのように機能するのか私はすべてのクリックハンドラーフォームで指定されています...

forgot password?正しい値を指定すると、メールを送信するたびにリンクをクリックするたびに...

提案をください...

4

3 に答える 3

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

私の提案は、パスワードを忘れた場合のハンドラーとしてログインフォームアクションを使用しないことです。

$("#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

ここで送信URLを変更しました:

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

したがって、送信クリック時にURLをリセットする必要があります。

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