0

これはとても簡単だと思いますが、なぜ#type2クリックできないのかわかりません。

<input type="radio" id="type1" name="group1" checked>

<input type="radio" id="type2" name="group1">

<input type="text" class="type1">

<input type="text" class="type2" disabled>

<script>

function toggle() {
    if ($('#type1').attr('checked', true)) {
        $('.type1').attr('disabled', false);
        $('.type2').attr('disabled', true);
    }
    else if ($('#type2').attr('checked', true)) {
        $('.type1').attr('disabled', true);
        $('.type2').attr('disabled', false);
    }
}

$(document).ready(function() {
    toggle();
});

</script>

何が問題なのかわかりません。どんな助けでも素晴らしいでしょう、ありがとう。

4

4 に答える 4

2

試す:

function toggle() {
    if ($('#type1').is(':checked')) {
        $('.type1').attr('disabled', false);
        $('.type2').attr('disabled', true);
    }
    else if ($('#type2').is(':checked')) {
        $('.type1').attr('disabled', true);
        $('.type2').attr('disabled', false);
    }
}

例: http://jsfiddle.net/andrewwhitaker/z5Wbv/1/

.attr使用していたのバージョンでは、の属性が trueに設定されていました。 チェックボックス/ラジオボタンがチェックされているかどうかを判断するには、セレクターで , を使用できます。#type1checkedis:checked

于 2012-10-11T22:15:43.707 に答える
2

.prop の代わりに .attr を使用しています。

.attr は属性用、.prop はプロパティ用です。プロパティ = チェック済み、選択済み、無効。

ドキュメント: http://api.jquery.com/prop/

チェックボックスがチェックされているかどうかを判断するには、

if ( elem.checked )
if ( $(elem).prop("checked") )
if ( $(elem).is(":checked") )
于 2012-10-11T22:17:21.723 に答える
0

作業デモ** http://jsfiddle.net/YUhFw/

修正が必要なものはほとんどありません:)

  • を使用してチェックされているかどうかを確認します.is(":checked")
  • クリックイベントに添付します。
  • disabledそれに応じて属性をアタッチおよびデタッチします。

それが原因に合うことを願っています:)

コード

function toggle() {
    if ($('#type1').is(':checked')) {
        $('.type1').removeAttr('disabled');
        $('.type2').attr('disabled', true);
    }
    else if ($('#type2').is(':checked')) {
        $('.type1').attr('disabled', true);
        $('.type2').removeAttr('disabled');
    }
}

$(document).ready(function() {
    $("input[type=radio]").click(function() {
        toggle();
    });
});​
于 2012-10-11T22:19:16.167 に答える
0

ここでは条件をチェックしていません

あなたはそれを設定してい which is always trueます..代わりにこれを試してください

if ($('#type1').is(':checked')){

また、これは実際には属性ではなく、ラジオボタンのプロパティであるため、.prop() 代わりに使用します。.attr()コードは次のようになります

function toggle() {
    if ($('#type1').is(':checked')) {
        $('.type1').prop('disabled', false);
        $('.type2').prop('disabled', true);
    }
    else if ($('#type2').is(':checked')) {
        $('.type1').prop('disabled', true);
        $('.type2').prop('disabled', false);
    }
}
于 2012-10-11T22:19:21.427 に答える