2016-03-07 26 views
1

我在網站上有幾個複選框。這個複選框也可以是check div,但一次只能有一個複選框check。那就是問題所在。當我想通過div點擊checbox時 - 它可以工作。只有一個checbox檢查可能性檢查複選框由div

當我只想一次檢查一個checbox時 - 它的工作原理。但是當我同時需要這兩種功能時 - 它不會。

因此,這裏是代碼(例如):

<div class="sth"> 
<input type="checkbox" class="myCheck"><label>blabla</label> 
</div> 
<div class="sth"> 
<input type="checkbox" class="myCheck"><label>blabla</label> 
</div> 
<div class="sth"> 
<input type="checkbox" class="myCheck"><label>blabla</label> 
</div> 

和jQuery:

$("div.sth").on("click",function(event) { 
    var target = $(event.target); 
    if (target.is('input:checkbox')) return; 

    var checkbox = $(this).find("input[type='checkbox']"); 

    if(!checkbox.prop("checked")){ 
     checkbox.prop("checked",true); 
    } else { 
     checkbox.prop("checked",false); 
    } 
}); 

$('input:checkbox').on('change', function() { 
    $('input:checkbox').not(this).prop('checked', false); 
}); 

回答

2

Updated fiddle

您應該添加以下行:

$('input:checkbox').not(this).prop('checked', false); 

在你"div.sth" click事件先取消其他複選框,然後選擇一個與點擊的div有關。

希望這會有所幫助。

+1

它太簡單了...我用了將近2個小時。這很好,thx :) 藉機我有一個問題:我有這樣的代碼:https://jsfiddle.net/pamudtzk/ 我怎樣才能從價格(9,15),添加到此一些硬幣和過去的更大的價格? –

+0

你可以給範圍標識符'id'或'class'? –

+0

我更喜歡避免這種情況,因爲這個盒子可能多於一個(例如10個),每個盒子都有中的不同價格標籤和不同的硬幣添加。這就是我遇到問題的原因。所以例如。我在框3中點擊checbox,框3中的價格變化。 –

0

你有沒有考慮過使用單選按鈕,而只是用CSS對它們進行樣式設計以便看起來像你想要的那樣?

否則使用其他答案,我的第二部分是我誤解了目標。