我需要检查1个数组值,如果值重复,它会弹出警报。 这是功能:
function checkDuplicateTenure(){
var f = document.frmPL0002;
var supplgrid = document.getElementById("mdrPymtGrid2");
var len = (supplgrid.rows.length) - 1;
for(var i=0;i<len;i++){
if (f.cbo_loanTenure[i+1].value == f.cbo_loanTenure[i].value) {
alert("DUPLICATE LOAN TENURE IN MONTH(S)");
}
}
return false;
}
如果在数组中获得重复值,该函数是有效的,但是如果所有值都不同,则它将命中js错误if (f.cbo_loanTenure[i+1].value == f.cbo_loanTenure[i].value) {
无法获取未定义或空引用的属性“值”。
由于
答案 0 :(得分:0)
改变它
for(var i=0;i<len-1;i++){
if (f.cbo_loanTenure[i+1].value == f.cbo_loanTenure[i].value) {
alert("DUPLICATE LOAN TENURE IN MONTH(S)");
}
}
假设你的循环运行了5次,你可以在循环里面设置i+1
6这是为什么js错误发生的未定义索引
答案 1 :(得分:0)
这是一个简单的越界错误。使用它来修复它:
for (var i=0;i<len-1;i++) {
因此,i+1
永远不会与len
相同。
答案 2 :(得分:0)
试试这个:
function checkDuplicateTenure(){
var f = document.frmPL0002;
var supplgrid = document.getElementById("mdrPymtGrid2");
var len = (supplgrid.rows.length) - 1;
for(var i=0;i<len-1;i++){
if (f.cbo_loanTenure[i+1].value == f.cbo_loanTenure[i].value) {
alert("DUPLICATE LOAN TENURE IN MONTH(S)");
}
}
return false;
}