2014-10-06 28 views
1

在我的表單中,我有兩個複選框。但是我可以檢查兩個複選框。如果一個複選框被選中,如何禁用其他複選框。只檢查離子中的一個複選框

這是我給我複選框

<label><h4><b>Payment Type</b></h4></label> 

      <ion-checkbox id="isChecked1" name="isChecked1" ng-model="isChecked1">Immediate Payment</ion-checkbox> 
      <ion-checkbox id="isChecked2" name="isChecked2" ng-model="isChecked2">Schedule Payment</ion-checkbox> 
+1

爲什麼你會使用複選框來實現這種用途?單選按鈕對於這樣的任務更容易,不是嗎? – briosheje 2014-10-06 10:40:26

回答

2

我不明白爲什麼你不使用單選按鈕,但這裏是一個非常簡單的例子e只使用JavaScript。

工作小提琴:

http://jsfiddle.net/qgqto6t7/

HTML:

<input type="checkbox" id="isChecked1">Immediatly</input> 
<input type="checkbox" id="isChecked2">Later</input> 

的Javascript:

var chk1 = document.getElementById("isChecked1"); 
var chk2 = document.getElementById("isChecked2"); 

chk1.onchange = function() { 
    chk1.checked ? chk2.disabled = true : chk2.disabled = false; 
}; 

chk2.onchange = function() { 
    chk2.checked ? chk1.disabled = true : chk1.disabled = false; 
}; 

但是,請使用單選按鈕對於這樣的任務需要考慮。我很確定他們是因爲某種原因而被髮明的:)

另外,我的例子是在純JavaScript中,因爲我對angularjs或其他任何你不熟悉的東西都很熟悉。在任何情況下,你都應該能夠輕鬆地使用javascript來完成它,而不會影響你的腳本。

編輯::此外,根據您的ID,這個腳本應該已經爲你工作,而不管angularjs與否

+0

這不是離子。 – que 2017-11-17 16:28:06

+0

@que因此,我的序言:「但這裏是一個非常簡單的例子,只使用javascript。」 – briosheje 2017-11-19 13:01:31

0

對不起。要使它簡單,你可以使用單選按鈕..

否則..

採用javascript這樣,

Check1 = document.getElementById("check1"); 
    Check2 = document.getElementById("check2"); 
    if(Check1.checked) 
    Check2.checked = false; 
+0

不,我仍然可以檢查複選框 – CraZyDroiD 2014-10-06 10:12:47

+0

這是否工作? – deeban 2014-10-06 10:32:08

+0

不行不行 – CraZyDroiD 2014-10-06 10:37:33

0
在HTML

<ion-checkbox id="isChecked1" name="isChecked1" ng-model="choice.isChecked1" ng-change="uncheckTheOtherOne()>Immediate Payment</ion-checkbox > 

在JS:

$scope.uncheckTheOtherOne = function(){ 
     $scope.choice.isChecked2 = false; 
    }; 

但我不知道這是一個好的做法