有人可以帮我这个吗?
我有另一个程序员的这个功能:
function checkRequired(fieldList) {
var field = null;
var blankFields = [];
for (var i = 0; i < fieldList.length; i++) {
listItem = fieldList[i].split;
fieldId = field[0];
label = field[1];
field = document.getElementById(fieldList[i].split("||")[0]);
if (isVisible(field) && isBlank(field)) {
blankFields[blankFields.length] = fieldList[i].split[1];
}
}
我将这个json数组传递给它:
var fieldList = new Array("'15||Project Requested By'","'18||Project Title'","'20||Banner Details'","'202||Flyer Details'","'2134||If Gl Code Not above'","'5862||Quantity'");
使用FB我发现此行[listItem = fieldList[i].split;]
我并不完全理解.split正在做什么以及它造成的问题。
任何帮助都将不胜感激。
更新:添加的图像显示错误发生的位置:
答案 0 :(得分:1)
您需要为split
提供一个参数,告诉它要拆分的内容。
现在,您只需将split
功能本身分配给listItem
;你没有打电话给它。
你可能意味着
listItem = fieldList[i].split("||");
进一步检查时,您没有向field
分配任何内容,因此在您尝试像数组一样访问它时,它等于null
。因此,你可能的意思是:
field = fieldList[i].split("||");
答案 1 :(得分:0)
我的猜测是函数应该是这样的:
function checkRequired(fieldList) {
var field = null,
blankFields = [],
listText, listItem, fieldId, label;
for (var i = 0; i < fieldList.length; i++) {
listText = fieldList[i];
listText = listText.substring(1, listText.length - 1); // trim ' (single quote)
listItem = listText.split("||");
fieldId = listItem[0];
label = listItem[1];
field = document.getElementById(fieldId);
if (isVisible(field) && isBlank(field)) {
blankFields.push(label);
}
}
return blankFields;
}
假设isVisible()和isBlank()在某处定义。