Javascript动态变量

时间:2016-02-13 12:29:54

标签: javascript forms input

我有一个小函数可以改变表单输入的类型(我用它来改变提交的按钮)。我已经在某个地方发现了它并且自己没有写它,它只是一个小的,方便的小代码片段,如下所示:

function change_input_type(id,x)
{
    var id;
    var x;

    // Change input type
    document.getElementById(id).type = x;
}

我用onClick称呼它:

onClick="change_input_type('myButton','submit');

但我希望它也能够改变输入的值(在某些情况下我希望从0更改为1的另一个隐藏输入)。我知道我可以创建另一个函数,将其重命名为change_input_value,然后将document.getElementById(id)。 type 更改为document.getElementById(id)。 value 但我想要一个通用功能,像这样:

function change_input(id,x,y)
{
    var id;
    var x;
    var y;

    // Change input
    document.getElementById(id).x = y;
}

并点击这样:

onClick="change_input('myButton','type','submit');"
onClick="change_input('myHidden','value','1');"

但是当我尝试它不会工作。我通常使用php,而且我对JavaScript不太熟练......所以我想知道我在这里做错了什么?

2 个答案:

答案 0 :(得分:5)

通过[..]访问对象属性(括号表示法)将允许您使用变量的值作为属性名称。

document.getElementById(id)[x] = y;

查看MDN Property accessor - bracket notation了解详情。

答案 1 :(得分:3)

只需使用setAttribute()方法将名为x的属性值设置为y

// Change input type
document.getElementById(id).setAttribute(x, y);

http://www.w3schools.com/jsref/met_element_setattribute.asp