0

ログイン ページには 2 つの入力フィールド (ユーザー名とパスワード) がありますが、2 番目のフィールドは、最初の入力が送信されて検証されるまで表示されません。同じボタンを使用して 2 回送信します。1 回はユーザー名のみで、もう 1 回はユーザー名とパスワードの両方で送信します。

送信されるフィールドに応じて、異なる送信呼び出しを使用したいと思います。

コードは現在、次のようになっています。

if($('input[name=password]').size() > 0)
    $('input[name=password]').focus();
else
    $('input[name=username]').focus();

$('#login-button').click(function() {
    $('form').submit();
});

しかし、Google アナリティクスの追跡のために、ユーザー名のみが送信されている場合 (1 回目の送信) に、別の送信呼び出しを使用したいと考えています。代替送信は次のようになります。

$('#login-button').click(function() {
    $('form').submit(function() {
     _gaq.push('_trackPageview', 'PageName');
});

どういうわけか、送信を if/else に単純に詰め込むことはできますか? それ以上のことがあると思います。

4

2 に答える 2

1

ユーザー名のみがあり、パスワードがないかどうかを確認したい場合は、パスワードフィールドが表示されているかどうかを確認できますか?これは、パスワードフィールドが画面に表示される前に追跡する場合です。

$('input[name=password]').is(':visible');

それで:

$('#login-button').click(function() {
    $('form').submit(function() {
        if ($('input[name=username]').size() > 0 && !$('input[name=password]').is(':visible')) {
            _gaq.push('_trackPageview', 'PageName');
        }
    });
});

ただし、これが当てはまらず、パスワードフィールドが画面に表示されたら追跡することを意味する場合は、上記のコメントを使用して、(if)ステートメントに(&&)句を追加できます。

if ($('input[name=username]').size() > 0 && $('input[name=password]').size() < 1) {
    //do some tracking
}
于 2012-07-26T23:35:30.317 に答える
1

このような何かがそれを行う必要があります:

$('#login-button').click(function() {
    $('form').submit(function() {
        if($('input[name=username]').size() > 0)
         _gaq.push('_trackPageview', 'PageName');
    });
});
于 2012-07-26T22:25:36.243 に答える