0

上記のリンクを確認してください。「*プライバシー ポリシーと免責事項に同意してください」というメモがあります。このメモをボタンのクリック時に表示したいのですが、このチェックボックスの「プライバシー ポリシーと免責事項を読み、同意しました」にチェックを入れた場合に限ります。 .最初はそのメモを非表示にしたい.そのチェックボックスをオンにしていない場合にのみ、ボタンのクリック時にそのメモを表示したい.アドバイスしてください...

これが私のコードです。

    $('#newprivacy').css('color','#ff0000');
 $('#newprivacy').hide();
 $('#btnContinue').click(function(e) { 
if(!document.getElementById('privacypolicy').checked) { 
// checkbox not checked e.preventDefault(); $('#newprivacy').show(); } else { 
$('#AccountSettingsForm').submit(); 
} });
 $('#privacypolicy').click(function(){ 
if ($('#privacypolicy').is(":checked")) {
 $('#newprivacy').hide();

     } });   } 

Chrome と IE で動作しないのはなぜですか?

4

5 に答える 5

1

機能の大部分はそこにあるようです。チェックボックスをオンにした後でチェックボックスをオフにした場合は、ボタンを再度無効にする必要があります。以下のコードにいくつか変更を加えました。

  1. changeイベントではなくチェックボックスのイベントをclick使用すると、キーボードを使用して状態を変更した場合でも、イベントが発生します。
  2. this再度選択するのではなく、イベントハンドラー関数のチェックボックスを参照するために使用し、jQuery関数を使用するのではなく、要素のプロパティに直接アクセスしますchecked.is()
  3. .prop()関数ではなく関数を使用してボタン.attr()のプロパティを変更します。disabled

jQueryコード:

$("#btnContinue").prop("disabled", true);
$('#newprivacy').css('color', '#ff0000');
$('#privacypolicy').change(function() {
    if (this.checked) {
        $('#newprivacy').hide();
        $("#btnContinue").prop("disabled", false);
    }
    else {
        $('#newprivacy').show();
        $('#btnContinue').prop('disabled', true);
    }
});

上記のコードは呼び出しに含まれているか、ページの最後にあると想定している$(document).ready()ため、コードの実行時に要素を使用できます。

最初の2行の効果は、HTMLを使用して実現することもでき、jQueryまたはJavaScriptコードを使用して非表示にしたり色を付けたりする必要がないことに注意してください。

clickそして、本当にそのロジックをボタンのイベントハンドラーに完全に置き換えたい場合は、次のようにする必要があります。

$('#btnContinue').click(function(e) {
    if(!document.getElementById('privacypolicy').checked) {
        // checkbox not checked
        e.preventDefault();
        $('#newprivacy').show();
    }
    else {
        $('#AccountSettingsForm').submit();
    }
});
于 2012-09-19T10:24:38.983 に答える
1
$('#btnContinue').click(function (e) {
    e.preventDefault();

    if ($('#privacypolicy').is(":checked")) {

        //either submit form or return true
        $('#AccountSettingsForm').submit();
    }
    else {

        $('#newprivacy').show();

        return false;
    }


});

次に、チェックボックスをクリックすると、プライバシーポリシーを削除できます。

于 2012-09-19T10:25:07.047 に答える
1

このようにしてみてください

 $(document).ready(function(){
 $('#newprivacy').hide();
 $("#btnContinue").attr("disabled", "disabled");
 $('#newprivacy').css('color','#ff0000');
 $('#privacypolicy').click(function(){
 if ($('#privacypolicy').is(":checked")) {
    $("#btnContinue").removeAttr("disabled");
}
else 
{
    $('#newprivacy').show();
}
});})
于 2012-09-19T10:26:01.213 に答える
1

最初にドキュメントの準備ができたら、div を非表示にします....

$(document).ready(function(){
 $('#newprivacy').hide();
});

そしてそこにコードを入れてください...それはうまくいくと思います....

于 2012-09-19T10:23:33.677 に答える
1

「hidden」属性の使用に関する w3schools のドキュメントを参照する必要があると思います。

http://www.w3schools.com/css/css_display_visibility.asp

そして、いつでも jquery を使用してこの属性を追加および削除できます。または、その値を変更します。

于 2012-09-19T10:23:48.870 に答える