1

次のようなフォームを使用してインデックスを作成しています。

var i = 0;
var s = new String( i+'.prop');
var v = document.formName[s].value;

しかし、私が実際に得たものは次のとおりです。

document.formName[0].value

Internet Explorer (8) でのみ、インデックス値「0.prop」が int にキャストされているようです。

それを止める方法についてのアイデアはありますか?

更新:これは、問題を示すjsfiddleです。'111' を返す必要がありますが、IE8 では foo を返します。

4

3 に答える 3

1

それを見つけた!この回答によれば、 NAME属性は数字ではなく文字で始まる必要があります...

あなたのhtmlを適応させて使用する

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

動作します(フィドルも更新しました)

フィドルを見る

于 2012-04-19T17:26:59.323 に答える
1

toString() メソッドを使用します。

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

typeof(s) === string // true
于 2012-04-19T17:23:58.627 に答える
0

行う

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

または

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