0

ツイッターブートストラップを使用してモーダルにある忘れられたユーザー名関数に取り組んでいます。[送信]ボタンをクリックしたら、いくつかの検証を実行する必要があります。検証に合格した場合は、スクリプトの残りの部分が1回だけ実行されることを確認してください。

私はこの機能に精通しており、運が悪かったのでセクション内で.one()使用しようとしました。検証チェックの後で、運が悪かったので追加しました。$(this).one('click', function()if(isValid).addClass("disabled");

これは、javascriptブロックの簡略化されたバージョンです。

$('#btnForgotUsername').live('click', function (e) {

    // Clear the error div of any previous errors    
    $('#vsForgotUsername').hide().empty();

    var isValid = true;

    // Must Enter Email Address
    var emailEntered = $('#txtEmailAddress').val();
    if (!$.trim(emailEntered).length) {
        $('#vsForgotUsername').append('Email address required');
        isValid = false;
    }
    else {
        // If Email Entered verify that it is a valid email address
        if (!validateEmail(emailEntered)) {
            $('#vsForgotUsername').append('Enter valid email address.');
            isValid = false;
        }
    }

    if (isValid) {
        $('#btnForgotUsername').addClass("disabled");

        var proxy = new serviceProxy('/Login.aspx/', { async: true });
        proxy.invoke
        (
            'forgotUser',
            {
                emailAddress: $('#txtEmailAddress').val()
            },
            function (result) {
                if (result.d == true) {
                    $('#pnlForgotUsername, #btnForgotUsername').hide();
                    $('#pnlForgotUsernameSuccess').fadeIn();
                    return;
                }
                else {
                    $('#btnForgotUsername').removeClass("disabled");
                    $('#vsForgotUsername').fadeIn().append("We do not have a record with that email address.");
                }
            },
            function (jqXHR, textStatus, errorThrown) {
            },
            null
        );
    }
    else {
        $('#vsForgotUsername').fadeIn();
    }
});

誰かが検証を達成し、検証= trueの場合にajaxを1回だけ実行するアプローチを見つけるのを手伝ってもらえますか?

4

1 に答える 1

1

うーん。正直なところ、何が必要なのか完全にはわかりませんが、ボタンのプロップを明示的に設定してみてください (ボタンであると想定しています)。

       $('#btnForgotUsername').prop('disabled', true);

さらに、成功に .data を追加し、それに対してテストします。

$("body").data("ajaxSuccess", "true");
于 2013-02-28T20:18:09.340 に答える