我正在尝试查找字段的值,如果它等于'1',则将值'1'放在不同的字段中,如果不是'0'。
我不确定为什么这不起作用,有人可以帮忙吗?
<input type="text" name="_1_1_33_1_id" value="" onchange="checkLineManager();">
<input class="valueeditable" type="text" name="_1_1_118_1" id="_1_1_118_1" value="" >
使用Javascript:
function checkLineManager() {
if (document.getElementsByName('_1_1_33_1_id').value == '1') {
document.getElementById('_1_1_118_1').value = '1';
} else {
document.getElementById('_1_1_118_1').value = '0';
}
}
答案 0 :(得分:1)
注意多次使用&#34;元素&#34;在以下行中:
if (document.getElementsByName('_1_1_33_1_id').value == '1') {
这不会返回一个元素,它会返回一个节点列表。
// To confirm that
alert(document.getElementsByName('_1_1_33_1_id').toString());
所以你需要使用:
if (document.getElementsByName('_1_1_33_1_id')[0].value == '1') {
还有其他方法可以访问该元素。最值得注意的是通过form
element
方法。
答案 1 :(得分:0)
提示在方法中:getElementsByName
返回多个元素 - 它返回一个匹配元素数组。
您需要使用数组表示法从数组中选择元素。
变化:
document.getElementsByName('_1_1_33_1_id')
要:
document.getElementsByName('_1_1_33_1_id')[0]
if (document.getElementsByName('_1_1_33_1_id')[0].value == '1') {
document.getElementById('_1_1_118_1').value = '1';
} else {
document.getElementById('_1_1_118_1').value = '0';
}
甚至更整洁,请使用ternary statement:
document.getElementById('_1_1_118_1').value =
document.getElementsByName('_1_1_33_1_id')[0].value == 1 ? '1' : '0';