2014-10-06 55 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; 
    }; 

但我不知道这是一个好的做法