1

我正在通过类似以下内容的表单进行索引:

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。

4

3 回答 3

1

使用 toString() 方法:

var i = 0;
var s = i.toString() + '.prop';

typeof(s) === string // true
于 2012-04-19T17:23:58.627 回答
1

找到了!根据这个答案NAME 属性必须以字母而不是数字开头...

所以调整你的html并使用

var i = 0;
var s = 'prop_'+i;
var v = document.formName[s].value;

会工作(我也更新了小提琴)

见小提琴

于 2012-04-19T17:26:59.323 回答
0

var s = new String(''+i+'.prop');

或者

var s = new String( i.toString()+'.prop');
于 2012-04-19T17:22:46.537 回答