我正在使用类似的表单编制索引:
var i = 0;
var s = new String( i+'.prop');
var v = document.formName[s].value;
但我得到的实际上是:
document.formName[0].value
看来我的索引值“0.prop”正在转换为int,仅在Internet Explorer(8)中
关于如何阻止它的任何想法?
更新:这是展示问题的jsfiddle。应返回'111',但它在IE8中返回foo。
答案 0 :(得分:1)
使用toString()方法:
var i = 0;
var s = i.toString() + '.prop';
typeof(s) === string // true
答案 1 :(得分:1)
发现它!根据此answer NAME属性必须以字母而非数字开头......
所以调整你的HTML并使用
var i = 0;
var s = 'prop_'+i;
var v = document.formName[s].value;
会奏效(我也更新了小提琴)
答案 2 :(得分:0)
做
var s = new String(''+i+'.prop');
或者
var s = new String( i.toString()+'.prop');