【问题标题】:Angularjs checkbox value on edit profile page编辑个人资料页面上的Angularjs复选框值
【发布时间】:2015-01-28 20:30:32
【问题描述】:

我是 angularjs 的新手,在编辑个人资料页面上的复选框值上遇到了一些问题。

我有一个复选框数组

$scope.checkBoxes = [
        {id:'1', value:'Reading'},
        {id:'2', value:'Cooking'},
        {id:'3', value:'Dancing'},
        {id:'4', value:'Singing'}
];

我使用 ng-repeat 来显示复选框

<div ng-repeat="checkBox in checkBoxes" style="display:inline;">
    <input type="checkbox" ng-model="checkBox.selected" id={{checkBox.id}}' ng-checked="checkItem(checkBox.id)" ng-change="listActionsHandler(checkBoxes)">{{ checkBox.value }}
</div>

这是我的 ng-change 函数:

$scope.listActionsHandler = function(list) {
        var has = [];
        angular.forEach(list, function(item) {
            if ( angular.isDefined(item.selected) && item.selected === true ) {
                has.push(item.id);
            }
        });
        formData['hobby'] = has;
 }

这是我的 ng-checked 函数,用于显示根据数据库保存的值检查的复选框。

var arr_checked_items = data.data.hobby;
var arraySize = arr_checked_items.length;
$scope.checkItem = function (id) {
    var checked = false;
    for(var i=0; i<= arraySize; i++) {
        if(id == arr_checked_items[i]) {
                checked = true;
        }
    }
    return checked;
};

这些功能在添加和编辑页面上正常工作,但问题是当我没有在复选框上应用任何更改并单击提交按钮时,它需要空白值。

我的问题是:如果我不应用任何更改,它应该采用复选框的旧值,如果我应用任何更改,它应该采用复选框的新值。

【问题讨论】:

    标签: javascript php jquery angularjs checkbox


    【解决方案1】:

    请尝试以下代码。我不确定天气是否正常。

    $scope.checkItem = function (id) {
        var checked = "";
        for(var i=0; i<= arraySize; i++) {
            if(id == arr_checked_items[i]) {
                    checked = "checked";
            }
        }
        return checked;
    };
    

    【讨论】:

    • 谢谢,但是这个功能可以正常工作,当我提交而不应用复选框的更改时遇到问题。
    猜你喜欢
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    相关资源
    最近更新 更多