2011-01-27 9 views
3

私はスクリプトの後に、1つのチェックボックスで別のチェックボックスをオフにします。すべてのデータがプログラマチックにロードされるので、少し複雑です。したがって、チェックボックスをオフにした場合は、そのsrc値を取得し、他の入力を調べて、 'R​​Qlevel'のタイトル+クリックされた要素のsrc値を持つ入力を探し、未チェックに設定します。JQueryが1つのチェックボックスを使用してプログラムで別のチェックボックスをオフにする

ここに現在のコードがあります。

function levels() { 
    var test = $(this).attr('src'); 
    if ($(this).is(':not(:checked)')) { 
    $(':input').each(function() { 
     if ($(this).attr('title') === ('RQLevel' + test)) { 
     $(this).removeAttr('checked'); 
     } 
    }); 
    } 
} 

両方のボックスがチェックされ、最初のボックスには、それはそれで2番目のボックスを取るべきではオフになっている場合、問題http://jsfiddle.net/V8FeW/7/ を説明しますここで働く例があります。ここで

マーベラス

+0

が重複する可能性:// stackoverflowのを.com/questions/4816991/jquery-working-with-title-and-sr​​c-attribut es – Josh

答えて

3
function levels() { 
    var test = $(this).attr('src'); 
    if (!this.checked) 
    $('input:checkbox[title=RQlevel' + test + ']').removeAttr('checked'); 
} 

$(function() { 
    $('input:checkbox').bind('change', levels); 
}); 

デモ:HTTPのhttp://jsfiddle.net/V8FeW/12/

+0

すばらしい出来ごと –

+0

もう一つ。無効にした属性を追加する方法。 $( 'input:チェックボックス[title = RQlevel' + test + ']')。Attr( 'disabled'、 'disabled'); –

+0

心配しないでください。私の間違い –

1

$('input [title="RQlevel"]').attr('checked', $(this).attr('checked'));

+0

ありがとうございますが、他のチェックボックスのIDはプログラム的に生成されており、そのタイトルのRQlevelには複数のチェックボックスがあり、チェックをはずす必要があります。が生成される。 –

0

あなたは、素敵なショートでエレガントな解決策を見つけることができます:http://briancray.com/2009/08/06/check-all-jquery-javascript/

+0

ありがとうございますが、同じタイトルのすべてのチェックボックスを探しているので、それはできません。私たちは、クライアントのエントリをフォームに基づいてプログラム的に生成されるので、それらがどれだけ多く存在するのか、同じフィールドセットに配置できないのか分かりません。 –

関連する問題