Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript动态变量_Javascript_Forms_Input - Fatal编程技术网

Javascript动态变量

Javascript动态变量,javascript,forms,input,Javascript,Forms,Input,我有一个小功能,可以更改表单输入的类型(我使用它来更改提交按钮)。我在某个地方找到了它,并不是我自己写的,它只是一段小的、方便的代码,如下所示: function change_input_type(id,x) { var id; var x; // Change input type document.getElementById(id).type = x; } function change_input(id,x,y) { var id;

我有一个小功能,可以更改表单输入的类型(我使用它来更改提交按钮)。我在某个地方找到了它,并不是我自己写的,它只是一段小的、方便的代码,如下所示:

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

    // Change input type
    document.getElementById(id).type = x;
}
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');"
我用onClick称之为:

onClick="change_input_type('myButton','submit');
但我希望它也能够更改输入的值(在某些情况下,我希望将另一个隐藏输入从0更改为1)。我知道我可以创建另一个函数,将其重命名为change\u input\u value,然后将document.getElementById(id)更改为document.getElementById(id)。键入为document.getElementById(id)。value但我想要一个通用函数,如下所示:

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

    // Change input type
    document.getElementById(id).type = x;
}
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');"
然后像这样点击:

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

    // Change input type
    document.getElementById(id).type = x;
}
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不是很熟练。。。所以我想知道我做错了什么?

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

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

查看更多详细信息。

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

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

查看更多详细信息。

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

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

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

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

您的项目中是否有可能使用jQuery。通常,使用此库设置DOM属性/值更容易。尤其是如果你是新手JS@Tushar除此之外,它在Chrome和FF中不会被覆盖,您确定它应该以这种方式运行吗?
var
语句只是将名称绑定到函数的作用域,就像参数绑定一样。@t.niese No,这不会覆盖参数。IMO对于这样一个琐碎的操作,几乎不需要专门的函数(特别是因为该函数显然也是由不太懂Javascript的人编写的;
var
声明完全是多余的)。只需编写
文档。需要时直接根据需要获取…
。您的项目中是否有可能使用jQuery。通常,使用此库设置DOM属性/值更容易。尤其是如果你是新手JS@Tushar除此之外,它在Chrome和FF中不会被覆盖,您确定它应该以这种方式运行吗?
var
语句只是将名称绑定到函数的作用域,就像参数绑定一样。@t.niese No,这不会覆盖参数。IMO对于这样一个琐碎的操作,几乎不需要专门的函数(特别是因为该函数显然也是由不太懂Javascript的人编写的;
var
声明完全是多余的)。只需编写
文档。需要时直接根据需要获取…
。应该指出的是
setAttribute
不一定会有直接明显的效果。例如,如果
属性已更改,则更改
属性。属性应该更多地被视为默认值,而不是活动值(属性)。w3schools是最好的参考,它们引入的setAttribute正好是那个些你们通常不应该使用的属性。应该提到的是,
setAttribute
不一定会有直接明显的效果。例如,如果
属性已更改,则更改
属性。属性应该更多地被视为默认值,而不是活动值(属性)。w3schools是他们引入setAttribute的最佳参考,这些属性正是您通常不应该使用的属性。