Onchange Error: undefined (setting 'value')
Onchange Error: undefined (setting 'value')
我正在寻求帮助,我遇到了一个问题,因为我在控制台上收到此错误“未捕获的类型错误:无法设置未定义的属性(设置 'value')”。我不能用document.getElementByID,因为我的ID会变,必须是class。有人可以帮助我在此代码中需要更改什么吗?
function information(ele){
for(var i=0; i<30; i++){
var address1 = document.getElementsByClassName('test2')[i];
if( ele.value == "test4"){
address1.value = "test5";
} else if (ele.value == "test6"){
address1.value = "test7";
} else if (ele.value == "test8"){
address1.value = "test9";
}
}
}
<div class="form grup information">
<lable for="dates-full.names"> Names full</lable>
<input name="dates-full.names" list="dates-full.names" type="text"
class="form grup test1" onchange="information(this)">
<datalist type="text" id="dates-full.names">
<option value="test4">
<option value="test6">
<option value="test8">
</datalist>
</div>
<div class="form grup test2">
<lable for="power-full.adress"> Adress full</lable>
<input id="test2" name="dates-full.adress" list="dates-full.adress" type="text"
class="form grup test2">
<datalist type="text" id="dates-full.adress">
<option value="test5">
<option value="test7">
<option value="test9">
</datalist>
</div>
没有 30 个具有 class 名称的元素 'test2'
。在 for 循环中,您迭代了 30 多个可能的元素,然后搜索名称为 class 'test2'
的第 n 个元素。然而可能只有不到 30 个元素。遍历不存在的元素。
一个可能的解决方案是使用 foreach 而不是 for。遍历所有元素。
试试这些:
For-each over an array in JavaScript
试试这个:
function information(ele){
var address1 = document.getElementsByClassName('test2');
for(var i=0; i<address1.length; i++){
if( ele.value == "test4"){
address1[i].value = "test5";
} else if (ele.value == "test6"){
address1[i].value = "test7";
} else if (ele.value == "test8"){
address1[i].value = "test9";
}
}
}
我正在寻求帮助,我遇到了一个问题,因为我在控制台上收到此错误“未捕获的类型错误:无法设置未定义的属性(设置 'value')”。我不能用document.getElementByID,因为我的ID会变,必须是class。有人可以帮助我在此代码中需要更改什么吗?
function information(ele){
for(var i=0; i<30; i++){
var address1 = document.getElementsByClassName('test2')[i];
if( ele.value == "test4"){
address1.value = "test5";
} else if (ele.value == "test6"){
address1.value = "test7";
} else if (ele.value == "test8"){
address1.value = "test9";
}
}
}
<div class="form grup information">
<lable for="dates-full.names"> Names full</lable>
<input name="dates-full.names" list="dates-full.names" type="text"
class="form grup test1" onchange="information(this)">
<datalist type="text" id="dates-full.names">
<option value="test4">
<option value="test6">
<option value="test8">
</datalist>
</div>
<div class="form grup test2">
<lable for="power-full.adress"> Adress full</lable>
<input id="test2" name="dates-full.adress" list="dates-full.adress" type="text"
class="form grup test2">
<datalist type="text" id="dates-full.adress">
<option value="test5">
<option value="test7">
<option value="test9">
</datalist>
</div>
没有 30 个具有 class 名称的元素 'test2'
。在 for 循环中,您迭代了 30 多个可能的元素,然后搜索名称为 class 'test2'
的第 n 个元素。然而可能只有不到 30 个元素。遍历不存在的元素。
一个可能的解决方案是使用 foreach 而不是 for。遍历所有元素。
试试这些: For-each over an array in JavaScript
试试这个:
function information(ele){
var address1 = document.getElementsByClassName('test2');
for(var i=0; i<address1.length; i++){
if( ele.value == "test4"){
address1[i].value = "test5";
} else if (ele.value == "test6"){
address1[i].value = "test7";
} else if (ele.value == "test8"){
address1[i].value = "test9";
}
}
}