0

私の$(document).ready()機能では.change、セットまたはラジオ ボタンにバインドされたイベントがあります。ただし、ユーザーが送信したフォームにエラーがある場合、ページはユーザーが選択した値で再読み込みされます。これにより、ページが読み込まれるたびにラジオボタン.change機能が起動しますが、これは望ましくありません。これを無効にするにはどうすればよいですか?

編集

これが完全な機能です。現在は混乱していて、この投稿の読みやすさを念頭に置いていたため、事前に投稿していませんでした。

参考までに-ユーザーがフォームを送信した後にエラーが発生した場合、ユーザーが送信ボタンを押したときと同じようにフォームをロードするページが必要です。ラジオ ボタンの選択に基づいて特定のdivおよび要素のセットを表示するので、このメソッドを使用しました。ページの読み込み中に操作が発生しているかどうかを検出する方法はありますか? spantrigger('change')

    $('input[name=TransactionType]').change(function (e) {
        //Clear any messages from previous transaction
        $('.error').text('');
        $('.success').text('');

        //Display fieldset Submit and Cancel(back to search) link
        $('#PageDirection').show();
        $('#AgentInformation').show();

        //Display input fields
        var radioValue = $(this);

        if (radioValue.attr('id') == "Enroll" || (radioValue.attr('id') == "ModT")) {
            //Enable and disable input boxes
            $('span').not('#AllInput').hide();
            $('#AllInput').show();
            $('#PayFrequency').show();
            $('#refNumberInput').show();

            //Set tooltips
            $('#AccountType').removeAttr("title");
            if (radioValue.attr('id') == "Enroll") {
                $('#PaymentFrequency').removeAttr("title");
                $('.req').show();
                $('#refNumberInput').show();
                $('#enrollNote').show();
            } else {
                $('#PaperStatement').show();
                $('#PaymentFrequency').attr("title", "Select the frequency to pay the distributor");
                $('#refNumberInput').show();
            }
        } else if (radioValue.attr('id') == "New") {
            $('span').not('#NewMessage').hide();
            $('#NewMessage').show();
            $('.req').show();
            $('#refNumberInput').show();

        } else if (radioValue.attr('id') == "ModA") {
            $('#AllInput').show();
            $('#AgentIdSpan').show();
            $('.req').show();
            $('#UnenrollMessage').hide();
            $('#NewMessage').hide();
            $('#PayFrequency').hide();
            $('#PaperStatement').hide();
            $('#refNumberInput').show();
            $('#AgentId').attr("title", "Enter the Agent ID to be modified");

        } else if (radioValue.attr('id') == "Clone") {
            $('span').not('#AgentIdSpan').hide();
            $('#AgentIdSpan').show();
            $('.req').show();
            $('#AgentId').attr("title", "Clone EFT onto this Agent ID");

        } else if (radioValue.attr('id') == "Unenroll") {
            $('span').not('#UnenrollMessage').hide();
            $('#UnenrollMessage').show();
            $('.req').show();
            $('#refNumberInput').show();

        }

        if (radioValue.attr('id') != "Clone") {
            $('.alwaysReq').show();
        };
    }).filter(':checked').trigger('change');
4

3 に答える 3

0

document.ready通常、変更を関数とは呼びません。チェックボックスを手動で変更した場合、または同じイベントが他の関数の影響を受けている場合にのみ呼び出されますが、 では呼び出されませんdocument.ready

.trigger('change')メソッドの変更をトリガーするため、メソッドを削除してくださいdocument.ready

于 2013-09-26T15:44:09.013 に答える
0

オートコンプリートを気にしない場合はautocomplete="off"form. 現在のフィールド値をそのdefaultValueと比較して、ブラウザによって自動的に入力されたかどうかを確認することもできます。

于 2013-09-26T15:31:53.463 に答える