json数据验证,使用angular Js和javascript进行输入值验证
json data validation with input values using angular Js and javascript
我在angular JS项目中的一个文件(/static/models.json)中得到了json数据。。
{
"familyType": {
"A650": [{
"partID": "2630_H"
}, {
"partID": "2690_H"
}, {
"partID": "2680_H"
}, {
"partID": "2600_H"
}, {
"partID": "2620_H"
}, {
"partID": "2610_H"
}],
"S400": [{
"partID": "S500_Aru"
}, {
"partID": "S600_Aru"
}, {
"partID": "S700_Aru"
}, {
"partID": "S800_Aru"
}, {
"partID": "S900_Aru"
}, {
"partID": "S100_Aru"
}
]
}
}
我得到了下面的函数,其中的参数传入该方法(Part_id1,Part_id2)和函数内部。。我有两个族类型(A650,S400),我需要检查两个输入的part_Id(part_id1,part_id2)是否属于同一族(即A650或S400
如果两个part_id(part_id1,part_id2)来自不同的族类型,我需要提醒用户。。。我们如何遍历json文件并比较两种族类型中的part_ID。。
$scope.ValidateModelList = function(Part_id1, Part_id2, $http) {
if ($scope.firTable.selectedRowsCount != 0) {
$http.get("/static/models.json")
.success(function(response) {
$scope.names = response;
});
// here i am storing json data in $scope.names object
// here i need to check that the part_ids with the family
}
}
有谁能帮我做这件事吗?我会非常感激…
非常感谢。。。。
更新
function ValidateModel(partIDlist){
alert('2');
var data = stubdata; // Stubdata is actual json data mentioned above
var partIdResult = [];
for (var key in data.familyType) {
angular.forEach(data.familyType[key], function (object) {
angular.forEach(partIDlist, function (partId) {
if (partId == object.partID) {
partIdResult.push({
value: partId, family: key
});
}
});
});
}
for (var i = 0; i < partIdResult.length; i++) {
// alert(partIdResult.length);
//alert(partIdResult.family);
alert(JSON.stringify(partIdResult))
alert(partIdResult.family); // this is giving undefined value
alert(partIdResult[0].family);
if (partIdResult.family === partIdResult[0].family){
alert('yes');
alert("part_id's are same");
}
else if (partIdResult.family !== partIdResult[0].family) {
alert("part_id's not same");
}
}
}
我在这儿递一张这样的单子。。
var partIDlist=["S900_Aru","S500_Aru","2610_H"]
我收到警报(JSON.stringfy(partIdResult))partIdResult,就像这个一样
[{"value":"S900_Aru","family":"S400"},
{"value":"S500_Aru","family":"S400"},
{"value":"2610_H","family":"A650"}]
我应该知道这三个part_id不属于同一个型号。。相反,我得到的part_id属于同一
你能帮忙吗。。。非常感谢。。。。
不赞成使用First successs。请改用。then。第二个数据存储在response.data下。
.then(function(response) {
var data = response.data;
var partId2Family = null, partId1Family = null;
for(var key in data.familyType){
angular.forEach(data.familyType[key], function(object){
if(Part_id1 == object.partID){
partId1Family = key;
}
if(Part_id2 == object.partID){
partId2Family = key;
}
})
}
if(partId1Family !== PartId2Family){
// warning
}
}
这应该奏效。
编辑:阵列版本
.then(function(response) {
var data = response.data;
var partIdResult = [];
for(var key in data.familyType){
angular.forEach(data.familyType[key], function(object){
angular.forEach(partIds, function(partId){
if(partId == object.partID){
partIdResult.push({value:partId, family:key});
}
});
})
}
for(var i = 1; i < partIdResult.length; i++){
if(partIdResult[i].family !== partIdResult[0].family){
//error
}
}
}
var partsList = {
"familyType": {
"A650": [{
"partID": "2630_H"
}, {
"partID": "2690_H"
}, {
"partID": "2680_H"
}, {
"partID": "2600_H"
}, {
"partID": "2620_H"
}, {
"partID": "2610_H"
}],
"S400": [{
"partID": "S500_Aru"
}, {
"partID": "S600_Aru"
}, {
"partID": "S700_Aru"
}, {
"partID": "S800_Aru"
}, {
"partID": "S900_Aru"
}, {
"partID": "S100_Aru"
}
]
}
};
function ValidateModelList(Part_id1, Part_id2){
var part_id_1_family = getPartFamily(Part_id1);
var part_id_2_family = getPartFamily(Part_id2)
//alert(part_id_1_family + ", " + part_id_2_family);
//console.log("part_id_1_family", part_id_1_family);
//console.log("part_id_2_family", part_id_2_family);
if(part_id_1_family != part_id_2_family) alert("parts are from different families!");
else alert("parts from same family.")
}
function getPartFamily(part_id)
{
var familyType = partsList.familyType;
// loop through family type
for(var family in familyType)
{
if(!familyType.hasOwnProperty(family)) continue;
//loop through part objects in this family
for(var j = 0; j < familyType[family].length; j++)
{
// check if parts id is in this array
if(part_id == familyType[family][j].partID) return family;
}
}
return false;
}
ValidateModelList("2630_H", "S900_Aru");
ValidateModelList("S600_Aru", "S900_Aru");
https://jsfiddle.net/Ladmwdvt/4/
虽然不清楚您的问题,但下面是您将如何检查的内容。
Object.keys(type.familyType).forEach(function(key,index) {
if(key === Part_id1 || key === Part_id2){
//do something
} else {
//do something else
}
});
一个可以玩的小提琴。
https://jsfiddle.net/2cgww6ec/1/
尝试这个
var t = {
"familyType": {
"A650": [{
"partID": "2630_H"
}, {
"partID": "2690_H"
}, {
"partID": "2680_H"
}, {
"partID": "2600_H"
}, {
"partID": "2620_H"
}, {
"partID": "2610_H"
}],
"S400": [{
"partID": "S500_Aru"
}, {
"partID": "S600_Aru"
}, {
"partID": "S700_Aru"
}, {
"partID": "S800_Aru"
}, {
"partID": "S900_Aru"
}, {
"partID": "S100_Aru"
}
]
}
};
search("2630_H","2620_H");
function search(ida,idb) {
$.each(t['familyType'], function(a, b) {
var str = JSON.stringify(b);
if(str.indexOf(ida)>=0 && str.indexOf(idb) >=0){
alert("same family : " + a);
return;
}
});
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p> search("2630_H","2620_H") will called <p>
试试这个:
var obj = {
"familyType": {
"A650": [
{
"partID": "2630_H"
}, {
"partID": "2690_H"
}, {
"partID": "2680_H"
}, {
"partID": "2600_H"
}, {
"partID": "2620_H"
}, {
"partID": "2610_H"
}
],
"S400": [
{
"partID": "S500_Aru"
}, {
"partID": "S600_Aru"
}, {
"partID": "S700_Aru"
}, {
"partID": "S800_Aru"
}, {
"partID": "S900_Aru"
}, {
"partID": "S100_Aru"
}
]
}
};
for (familyid in obj.familyType){
obj.familyTyle[familyid].forEach(function(key){
if(key.partID == Part_id1) family1 = familyid;
if(key.partID == Part_id2) family2 = familyid;
});
}
if(family1 === family2){
alert('parts are same');
}
相关文章:
- 验证Javascript中的Textarea
- 表单验证JavaScript编号总是返回false
- 验证javascript中的输入没有'不起作用
- 验证JavaScript中是否存在变量
- 验证javascript中的输入是否在2个数字之间
- 禁止的正则表达式._或.-(电子邮件验证/javascript)
- 表单验证Javascript没有响应
- 用于验证 JavaScript 中的字母数字值的正则表达式
- 如何使用正则表达式验证 JavaScript 中的自定义 URL
- 按 ID 验证 JavaScript 中的列表框和单选按钮
- 如何验证 JavaScript 和 html 代码
- 表单验证 - Javascript 删除空格电话号码
- 用于验证 JavaScript 中的条件的正则表达式
- 仅当浏览器无法验证表单时才使用表单验证 JavaScript
- 多个复选框验证 JavaScript
- 验证 Javascript 中的多个部分
- 使用 Jquery 验证 JavaScript 对象是否为空
- 警报框中的基本验证 Javascript
- 登录验证 JavaScript 无法正常工作
- 验证 JavaScript 正则表达式