使用输入变量设置元素的值

时间:2016-05-04 09:54:46

标签: javascript jquery html

我有一个js函数,它根据id_2的值设置id_1的值。它如下所示:

function set_value(id_1, id_2, url){
    var id_1_value;
    id_1_value = $(id_1).val();
    var value;
    ...
    /* calculation etc. */
    document.getElementById(id_2).value = value;
};

该函数通过像id_1这样的onchange方法链接到onchange='set_value(this, id_2)' html元素。

如果我更改id_1中的值,则该功能无效,我在控制台中收到以下错误:

Unable to set property 'value' of undefined or null reference

但是如果我在函数中硬编码document.getElementById('id_2')它就可以了。如何编写此函数以便我可以成功传递元素id变量?我想为你看到的不同元素重用这个函数......

4 个答案:

答案 0 :(得分:1)

您的set_value功能应如下所示。

function set_value(id_1, id_2, url) {
    var id_1_value = $(id_1).val();
    /* calculation etc. */
    if ($(id_2).length !== 0)
    {
        $(id_2).val(id_1_value);
    }
}

答案 1 :(得分:0)

你是否经过"#id_2"到set_value参数?

如果是这意味着它将返回null。

// The function should be called like this 
 var id_2 =  "id_2";
 set_value(this, id_2, blah...)

答案 2 :(得分:0)

像这样更改电话

onchange='set_value(this, "id_2")'

第二个参数应该作为字符串传递。

答案 3 :(得分:0)

尝试以下代码:

function set_value(id_1, id_2, url){
    var id_1_value = $(id_1).val();
    var value;
    ...
    /* calculation etc. */
    document.getElementById(id_2).value = value;
};

和onchange功能

onchange="set_value(this, 'id_2')"