Javascript 角度:如何获取多个复选框值

Javascript 角度:如何获取多个复选框值,javascript,jquery,angularjs,checkbox,Javascript,Jquery,Angularjs,Checkbox,我可能会错过一些基本的角度概念,因为我的ng change事件标记了两个复选框,而不是一个复选框 这些是我的视图(html文件)(请注意标记): 当我从视图中删除ng model=“formData.trade\u type”时,我可以分别单击复选框(但是代码当然不能正常工作) 我遗漏了什么?这是因为您对这两个输入使用了相同的ng model=“formData.trade\u type” 使用不同的模型存储不同的值 例如:ng model=“formData.trade\u type\u 1”

我可能会错过一些基本的角度概念,因为我的ng change事件标记了两个复选框,而不是一个复选框

这些是我的视图(html文件)(请注意
标记):

当我从视图中删除
ng model=“formData.trade\u type”
时,我可以分别单击复选框(但是代码当然不能正常工作)


我遗漏了什么?

这是因为您对这两个输入使用了相同的
ng model=“formData.trade\u type”

使用不同的模型存储不同的值

例如:ng model=“formData.trade\u type\u 1”和
ng model=“formData.trade\u type\u 2”


编辑:由于您有不同的值,如果您想使用相同的型号,您可以使用单选按钮而不是选择框,那么对于您使用相同的
ng model
属性的两个输入,只会选择一个。
您可以在这里看到示例:

正如您所说,这里有一种在数组中存储不同复选框值的方法

$scope.selectedValues = [];

$scope.select = function (item) {
   var index = $scope.selectedValues.indexOf(item.value);
   if (item.isChecked) { // adding the value if checked and not exist in array
      if (index == -1) {
         $scope.selectedValues.push(item.value);
      }
   } else {
      if (index > -1) { // removing the value if uncheked and exist in array
         $scope.selectedValues.splice(index, 1);
      }
   }
}
在模板中:

<input type='checkbox' ng-model='item.isChecked' ng-value='item.value' 
ng-change='select(item)'/>

所需的值将存储在
$scope中。selectedValues
,您可以从该值构造查询字符串


注意:请确保您的
项目是一个对象
,并且应该为其分配
项目。值
属性以获取值

谢谢您的回答,我现在理解了这个问题。最糟糕的是,我必须使用相同的模型,现在必须找到一种方法,如何将这两个复选框的值发送为
formData
。如果要使用相同的模型并仅选择一个值,请使用单选按钮而不是复选框。抱歉,不清楚。请检查我的控制器。当我在其他字段中使用单选按钮(仅1个选项)时,我的控制器的
$scope.loadMarkers
构造一个url,例如,
/get\u markers/?property\u parent=12
/get\u markers/property\u type=23
。但在这种情况下,我想使用复选框,我想让我的控制器构造一个url,即
/get\u markers/trade\u type=1&trade\u type=2&trade\u type=123
(这就是我需要这些复选框的原因,也是我需要相同模型的原因)。你能告诉我为了达到这个目标我应该搜索什么信息吗?好的,我明白了,我遇到了一个类似的问题,我会为你发布另一个答案。谢谢你的回答。不幸的是,当我点击其中一个复选框时,这两个复选框都被选中了,可能是因为两个复选框上的
ng model
仍然是相同的(
ng model='item.isChecked'
)?…是的,我认为如果有多个值,那么每个项都是不同的对象。您必须循环这些值才能获得此工作1。必须循环这些值才能使代码正常工作,否则为2。使用不同的ng模型并使用您以前的codeNope,不幸的是我没有循环,这些字段是由Django framework的
ModelMultipleChoiceFilter
trade\u type=Django\u filters.ModelMultipleChoiceFilter(queryset=trade.objects.all(),widget=CheckboxSelectMultiple(attrs={-model':“formData.isChecked”,“ng change”):“选择(formData)”,“ng值”:“formData.property_type”,}))
$scope.selectedValues = [];

$scope.select = function (item) {
   var index = $scope.selectedValues.indexOf(item.value);
   if (item.isChecked) { // adding the value if checked and not exist in array
      if (index == -1) {
         $scope.selectedValues.push(item.value);
      }
   } else {
      if (index > -1) { // removing the value if uncheked and exist in array
         $scope.selectedValues.splice(index, 1);
      }
   }
}
<input type='checkbox' ng-model='item.isChecked' ng-value='item.value' 
ng-change='select(item)'/>