我有一個非常簡單的問題 - 我在想 - 但我無法自己解決它。當複選框2被選中時取消選中複選框1
我有兩個複選框: 一個與價值是,與值號
其他的我需要某種形式的腳本來幫我取消一個當其他檢查。所以,如果我檢查複選框沒有。 1 - 複選框沒有。 2會自動取消選中 - 反之亦然。其中一個複選框 - 只有一個 - 必須經常檢查。不,我不能在這種情況下使用單選按鈕。
將是巨大的,如果它可以做我的jQuery - 但任何幫助會做:)提前
感謝
羅伯特
我有一個非常簡單的問題 - 我在想 - 但我無法自己解決它。當複選框2被選中時取消選中複選框1
我有兩個複選框: 一個與價值是,與值號
其他的我需要某種形式的腳本來幫我取消一個當其他檢查。所以,如果我檢查複選框沒有。 1 - 複選框沒有。 2會自動取消選中 - 反之亦然。其中一個複選框 - 只有一個 - 必須經常檢查。不,我不能在這種情況下使用單選按鈕。
將是巨大的,如果它可以做我的jQuery - 但任何幫助會做:)提前
感謝
羅伯特
$('#checkbox_1').change(function() {
if ($(this).is(':checked')) {
$('#checkbox_2').prop('checked', false);
}
else {
$('#checkbox_1').prop('checked', false);
$('#checkbox_2').prop('checked', true);
}
});
$('#checkbox_2').change(function() {
if ($(this).is(':checked')) {
$('#checkbox_1').prop('checked', false);
}
else {
$('#checkbox_2').prop('checked', false);
$('#checkbox_1').prop('checked', true);
}
});
編輯:這應該現在的工作:-)
$("#checkbox1").bind('click', function(){ $("#checkbox2").removeAttr('checked'); });
$("#checkbox2").bind('click', function(){ $("#checkbox1").removeAttr('checked'); });
我能想到的最簡單的方法是:
$('input:checkbox').change(
function(){
var group = this.name;
$(this).siblings('input:checkbox[name="'+ group + '"][checked]').removeProp('checked');
});
但是有一些注意事項,上面的使用removeProp()
,它僅限於jQuery 1.6(和以上,大概)。在1.6之前,應該可以用removeAttr('checked')
代替。
請,不過,考慮使用<input type="radio" />
元素,這是正是他們設計如何處理和使用。
我按計劃進行這方面的工作,但是...我的形式我有另一組複選框,和他們得到限制也是如此,儘管它們的名稱完全不同。但我需要用戶能夠選擇多個這些複選框。看起來好像該腳本會影響所有複選框組。我實際上認爲通過輸入name =「'+ group +'」,可以將這個功能限制在名稱以「group」開頭的複選框中。但似乎並非如此。
來分配change
事件處理程序的選擇是$('input:checkbox')
,其選擇/適用於所有複選框在頁面上。
將其應用到只有那些複選框在特定的組,你可以使用:
$('input:checkbox[name="checkboxGroupName"]').change(
function(){
$(this).siblings().removeProp('checked');
});
參考文獻:
嗨大衛。非常感謝。我按計劃完成了這項工作,但是......在我的表格中,我有另一組複選框,他們也得到了限制,儘管他們的名字完全不同。但我需要用戶能夠選擇多個這些複選框。看起來好像該腳本會影響所有複選框組。我實際上認爲通過輸入name =「'+ group +'」,可以將這個功能限制在名稱以「group」開頭的複選框中。但似乎並非如此。 – Robert
function ChkBoxClicked() {
$("#chkBoxList_0").bind('click', function() { $("#chkBoxList_1").removeAttr('checked'); });
$("#chkBoxList_1").bind('click', function() { $("#chkBoxList_0").removeAttr('checked'); });
if (($('#chkBoxList_0').is(':checked')) || ($('#chkBoxList_1').is(':checked'))) {
if ($('#chkBoxList_0').is(':checked')) { alert('chkBoxList_0'); return false; }
if ($('#chkBoxList_1').is(':checked')) { alert('chkBoxList_1'); return false; }
} else {
alert('non of the chkBoxList'); return false;
}
}
這是我做的
$(document).ready(function() {
$(".checkbox1").click(function(event) {
$(this).parents('tr').children('td').children('.todos').prop('checked', false);
});
$(".checkbox2").click(function(event) {
$(this).parents('tr').children('td').children('.checkbox1').prop('checked', false);
});
這基本上指出,當checkbox1被選中,並且用戶嘗試檢查checkbox2,checkbox1,將取消選中。
爲什麼你不能使用單選按鈕?這完全是他們設計的。 – lonesomeday
「並且不 - 我在這種情況下不能使用單選按鈕。」 - 做詳細說明。 –
如果你不能使用單選按鈕,那麼我猜你的分析存在一些問題,因爲你想要的只是單選按鈕的行爲。你應該退後一步,想想爲什麼地球上不能使用單選按鈕。不要重新發明輪子。 –