【问题标题】:Validate a textbox input with an array list in angularjs使用angularjs中的数组列表验证文本框输入
【发布时间】:2016-08-17 06:30:07
【问题描述】:

我对 AngularJS 很陌生,目前我正在研究一个用 angularjs 设计的表单。

我的任务是使用列表验证文本框输入。如果在文本框中输入的值不在列表中,那么它应该会引发验证错误。

我已经编写了以下代码行,用于通过 REST API 获取列表项:

app.factory("EatonScanningFactory", ['$http', function($http) {

    var EatonScanningFactoryObj = {};
    EatonScanningFactoryObj.GetToolMaxTimeList = function (columnName) {
        return $http({

            method: 'GET',

            url: _spPageContextInfo.webAbsoluteUrl
            + "/_api/web/lists/getbytitle('Tool%20Max%20Time')/Items/"
            + "?$select=Text,Value&$orderby=Text&$filter=Title eq '" + columnName + "'",

            headers: { "Accept": "application/json;odata=verbose" }

        });
    }

它将列表项返回到数组中。 以下代码行用于访问调用上述函数:

    var getToolId = EatonScanningFactory.GetToolMaxTimeList('ToolNumber');
    var getMaxLife = EatonScanningFactory.GetToolMaxTimeList('MaxLife');

我无法继续进行,因为我不确定如何验证我的文本框输入是否在列表中可用。

请帮忙

【问题讨论】:

  • 您可以发布您的列表样本吗?它在 JSON 中是什么样子的?
  • 列表有两列“ToolNumber”和“MaxLife”。
  • 如果你发布一个样本会很容易。
  • 刀具号最大寿命 123456 45 223365 60

标签: angularjs validation


【解决方案1】:

您好,这里有一个合理的解决方案作为示例

$scope.list = EatonScanningFactory.GetToolMaxTimeList('MaxLife');

Javascript(本机)示例:

function validateList() {
    var IsInList = false;
    for (var i = 0; i < $scope.list.length; i++) {

        if ($("#textbox").val() == $scope.list[i].listvalue) {
            IsInList = true;
            break;
        } 
    }

    return IsInList;
}

角度示例:

$scope.validateFunction = function() {  
    angular.forEach($scope.list, function(value, key){
        var IsInList = false;

        if($("#textbox").val() == value.listvalue) {
            IsInList = true;
            break;
        }
    });

    return IsInList;
}

//Invoke the function like follow:
$scope.validateFunction();

【讨论】:

  • @TheAwesomeCoder : 它给出的错误“长度”不是属性?
  • 很抱歉现在才回来,我不得不做一些事情。 length 属性返回对象或数组中从 1 开始的项目总数。尝试 console.log(yourobject) / 或来自示例 console.log($scope.list) 并查看数据是什么样子,这将告诉您数据是否在对象/数组中正确格式化。如果 JSON 响应的格式不正确,只需使用 $scope.list = JSON.parse($scope.list); //这应该将它转换回可读的javascript oject。
  • 我们可以通过 angular.foreach(var in variable) 来实现吗?如果可以,请告诉我语法吗?
猜你喜欢
  • 1970-01-01
  • 2015-10-12
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
相关资源
最近更新 更多