MEP
MEP

Reputation: 17

Javascript variable as html tag name

Here is my code..

<!DOCTYPE html>
<html>
<script>
function genbox()
{
var i;
var myarray = new Array();
myarray[0] = "name";
myarray[1] = "dob";
myarray[2] = "email";
for (i=0;i<myarray.length;i++)
{
document.write('<input name="' + myarray[i] + '"/>');
}
}
</script>
<body>
<input type="button"  value="create" onclick="genbox();">
</body>
</html>

Old:I want the textbox name as the values of the array such as name, dob etc. but all i'm getting is 3 textboxes with the same name "myarray[i]". Please help me.

Okay, Here we go, I'm pretty new to js. After clicking the button it creates 3 textboxes, but, the button disappears, What should I do to keep the button alive???

Upvotes: 0

Views: 4896

Answers (3)

Emil A.
Emil A.

Reputation: 3445

You should go through some basic tutorials about javascript, try http://www.codecademy.com/

Here's the code, however you shouldn't add html with document.write, there are other, better methods to do it.

    var i,
        myarray = ["name", "dob", "email"];

    for (i = 0, ilen = myarray.length; i < ilen; i++) {
        document.write('<input name="' + myarray[i] + '"/>');
    }

Upvotes: 0

varnie
varnie

Reputation: 2595

try this line in the loop instead:

document.write('<input name="' + myarray[i] + '"/>');

Working jsfiddle is here.

Upvotes: 5

mgibsonbr
mgibsonbr

Reputation: 22007

You can't insert JavaScript variables inside a string and expect the interpreter to extract its value (as some languages do, like PHP). Build your string using concatenation instead:

"<input name='" + myArray[i] + "'/>"

Upvotes: 5

Related Questions