如果是ElementID值,则更改另一个ElementID值

时间:2014-08-15 08:31:40

标签: javascript getelementbyid

我正在尝试查找字段的值,如果它等于'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';
}
}

http://jsfiddle.net/nbren007/o9xp0efy/

2 个答案:

答案 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';