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

Javascript 使用输入变量设置元素的值,javascript,jquery,html,Javascript,Jquery,Html,我有一个js函数,它根据id\u 1的值设置id\u 2的值。如下所示: 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; }; 该函数通过如下的onchange方法链接到

我有一个js函数,它根据
id\u 1
的值设置
id\u 2
的值。如下所示:

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;
};
该函数通过如下的onchange方法链接到
id\u 1
html元素
onchange='set\u value(this,id\u 2)

如果我更改
id_1
中的值,该函数将不起作用,并且在控制台中出现以下错误:

Unable to set property 'value' of undefined or null reference
但是如果我在函数中硬编码document.getElementById('id_2'),它就可以正常工作。如何编写此函数,以便成功地将元素id变量传递给它?我想对您看到的不同元素重复使用此函数…

是否将“#id_2”传递给set_value参数

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

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

您的
设置_值
功能应如下所示

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);
    }
}

像这样换电话

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

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

请尝试以下代码:

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')"

很抱歉,这是一个错误,刚刚更改了它。谢谢,我选择这个,因为我想避免在输入变量中添加引号。
onchange=set\u值(这个,id\u 2)
部分是使用我的django代码自动生成的