0

でラジオボタンをチェック済みとしてマークしようとしていますがclick()、ラジオが無効になっていると機能しません。

私は何をすべきか?

4

6 に答える 6

3

メソッドを使用したい.prop().attr()クロスブラウザの真実性を検出するのは難しい

$('input:radio:disabled').prop('checked', true);

^これにより、無効になっているものが自動的にチェックされます。

ある種のクリックイベントなどでそれをしたい場合は、次のようにします。

$('input:radio').prop('checked', true);

jsFiddle デモ

于 2012-08-13T13:41:41.090 に答える
1

唯一の解決策は javascript/jquery からのものです - (jquery の最も単純な例)

<input type="radio" id="test" name="test_name" disabled="disabled" />

$(document).ready(function() {
  $('#test').attr('checked', 'checked');      
});​

このjsFiddle http://jsfiddle.net/7XevT/1/を参照してください

于 2012-08-13T13:40:09.373 に答える
0

disabled入力はクリックイベントをトリガーしません。ハックな方法は、ラジオを別の要素でラップすることです。

<span class='radio'><input type='radio' disabled/></span>

$('.radio').click(function(){
  var $input = $(this).find('input'); 
  $input.prop('checked', !$input.prop('checked'))
})

デモ

disabledしかし、チェック状態を変更できるのに、なぜ入力が必要なのかわかりません!!

于 2012-08-13T13:48:48.973 に答える
0

clickevent* を使用するのは間違ったアプローチです。無効化された要素は (無効化されているため) クリックされても反応しないため、clickイベントをトリガーしても意味がありません。

<input type="radio" /><input type="checkbox" />要素には、checkedチェック状態を変更するために変更する必要があるプロパティがあります。

プレーン JS の場合:

<input id="r" type="radio" name="foo" value="bar" disabled />
<script type="text/javascript">
    document.getElementById('r').checked = true;
</script>

jQuery の場合:

<input id="r" type="radio" name="foo" value="bar" disabled />
<script type="text/javascript">
    $('#r').prop('checked', true);
</script>

* または関数、どちらを使用しているかわかりません。jQuery.fn.clickイベントをトリガーするのは だと思います。

于 2012-08-13T13:46:55.230 に答える
0

ゲームには少し遅れていますが<span>、ラジオボタンの上に配置できる一時を追加できます。これにより、クリックしているような効果が得られます。

$('input[disabled="disabled"]').each(function(){
    $(this).wrap('<span style="position:relative;"></span>')
        $(this).parent().append('<span class="disabled" style="left:0; top:0; position:absolute; display:block; width:100%; height:100%;">&nbsp;</span>');
})

$('.disabled').click(function(){
    $(this).prev().removeAttr('disabled').attr('checked', 'checked').attr('disabled', 'disabled').unwrap();
    $(this).remove();
})

フィドルをチェックしてください - http://jsfiddle.net/FTymF/

無効化されたラジオ ボタンを切り替えることもできます。

$('.disabled').click(function(){
    if($(this).prev().attr('checked'))
        $(this).prev().removeAttr('disabled').removeAttr('checked').attr('disabled', 'disabled');
    else
         $(this).prev().removeAttr('disabled').attr('checked','checked').attr('disabled', 'disabled');
})

フィドルをチェックしてください - http://jsfiddle.net/FTymF/1/

于 2012-08-13T14:16:59.787 に答える
0

これを行う唯一の方法は、要素 (div など) をラジオ ボタンの前に配置し、そのクリックをチェックすることです。

無効化された要素ではマウス イベントが無効化されます (正当な理由により... 無効化しました!)

ただし、必要なことを行うためのより良い方法がおそらくあります。無効になっているラジオボタンをクリックする人がいるとは思えません。さらに、ラジオ ボタンをクリック可能にしたい場合は、無効にしないでください。

于 2012-08-13T13:39:53.623 に答える