1

I have a form for which I cannot change the input value field names. One such field is in the HTML as follows:

<body>
<form id="f" method="get" action="/code/submit.php">
<input type="text" name="var[list]" id="ixv[list]" value="">
<button type="button" title="Save" onclick="check();">
</form>
</body>

Now in my javascript, I want to access that input value. I tried this, and of course it doesn't work since [] looks like an array in JS.

function check() {
var x=var[list].value;
alert(x);
}

The problem is that the variable name has [] in it. How can I get that input field value in javascript?

David
  • 21
  • 4
  • That's why http://stackoverflow.com/questions/70579/what-are-valid-values-for-the-id-attribute-in-html. – coma May 04 '13 at 16:14

3 Answers3

2

this works:

http://jsfiddle.net/mqv82/1/

<input type="text" name="var[list]" id="ixv[list]" value="foo">

alert(document.getElementById('ixv[list]').value);
coma
  • 16,429
  • 4
  • 51
  • 76
1

Try it like this:

var x = document.getElementsByName("var[list]")[0].value;
BYTE RIDER
  • 169
  • 2
  • 12
  • 1
    this will returns error , `document.getElementsByName` returns a HTMLCollection ! – rab May 04 '13 at 16:25
0

In modern browser, use querySelectorAll

document.querySelectorAll('[name="var[list]"]')[0].value 

or if you know id try getElementById

document.getElementById('ixv[list]').value 

or getElementsByName

document.getElementsByName('var[list]')[0] .value 

Above three will returns same result

rab
  • 4,134
  • 1
  • 29
  • 42