我有一个带有文本框和复选框的窗体。当我填充值到复选框,值被推入到数组中。当我取消选中复选框时,该值将从该数组中删除。 这是我的工作code pen.跟踪数组中的已删除索引javascript
这是我的表单代码
<label class="item item-input">
<input type="text" placeholder="In a word, what is important to you?" ng-model="values.first" >
<ion-checkbox ng-click="toggleCheckBox(success.first,values.first)" ng-change="show2='true'" ng-model="success.first"
ng-disabled="!values.first" style="border: none;padding-left: 30px;" class="checkbox-royal"></ion-checkbox>
</label>
<label class="item item-input" ng-show="show2" ng-class="{'animated-custom slideInLeft':success.first}">
<input type="text" placeholder="What else is important to you?" ng-model="values.second" >
<ion-checkbox class="checkbox-royal" ng-model="success.second" ng-click="toggleCheckBox(success.second,values.second)" ng-change="show3='true'" ng-disabled="!values.second" style="border: none;padding-left: 30px;"></ion-checkbox>
</label>
<label class="item item-input" ng-show="show3" ng-class="{'animated-custom slideInLeft':success.second}">
<input type="text" placeholder="What else is important to you?" ng-model="values.third">
<ion-checkbox class="checkbox-royal" ng-model="success.third" ng-click="toggleCheckBox(success.third,values.third)" ng-change="show4='true'" ng-disabled="!values.third" style="border: none;padding-left: 30px;"></ion-checkbox>
</label>
<label class="item item-input" ng-show="show4" ng-class="{'animated-custom slideInLeft':success.third}">
<input type="text" placeholder="What else is important to you?" ng-model="values.four">
<ion-checkbox class="checkbox-royal" ng-model="success.four" ng-click="toggleCheckBox(success.four,values.four)" ng-change="show5='true'" ng-disabled="!values.four" style="border: none;padding-left: 30px;"></ion-checkbox>
</label>
这是控制器代码,
.controller('myctrl',function($scope){
var values=[];
$scope.toggleCheckBox=function(isChecked, value){
if(isChecked){
values.push(value);
console.log(values);
}else{
var currentIndex = values.indexOf(value);
values.splice(currentIndex, 1);
console.log(values);
//console.log(values.indexOf(value));
}
}
})
的问题是,当我从数组中删除的价值,并再次检查复选框,它将值推到最后。是否有可能在数组中保留该值的原始位置?
文本框控件的数量是否固定为最大值4或超出最终用户的期望? – gkb