0

我正在尝试在客户端填充字典对象,我可以将其传递给我的 Action 方法。我能够使用硬编码值构建字典对象,但是我想根据 DOM 元素动态创建它。

下面是如何编码的样子:

<input type="text" id="t1" class="textClass" />
<input type="text" id="t2" class="textClass" />
<input type="text" id="t3" class="textClass" />
<input type="text" id="t4" class="textClass" />
<input type="text" id="t5" class="textClass" />

<input type="button" id="btnSubmit" value="Submit" />

这是带有硬编码值的 JavaScript 函数。我正在遍历所有具有textClass. 这很好用,我可以在 Action 方法参数中看到字典项。

<script type="text/javascript">

        $('.textClass').each(function (index) {
            dictionary = {

                '[0].Key': 'k1', 
                '[0].Value': 'v1',

            };


</script>

这就是我想要构建字典的方式,但我无法弄清楚如何使用索引和 DOM 元素来创建字典键和值。如果我按照我在下面写的方式写,它不会构建字典。

<script type="text/javascript">

        $('.textClass').each(function (index) {
            dictionary = {

                '[' + index '].Key': $(this).attr('id'), 
                '[' + index '].Value': $(this).val(), 

            };


</script>

有人可以指出我在这里做错了什么吗?

4

2 回答 2

5

为了能够从字符串构造键,您需要相应地设置它们:

var dictionary = {};
dictionary['[' + index + '].Key'] = $(this).attr('id');

您当前为每次迭代覆盖字典变量。在您的场景中,您需要以下内容:

var dictionary = {};
$('.textClass').each(function (index) {
    dictionary['['+index+'].Key'] = $(this).attr('id');
    dictionary['['+index+'].Value'] = $(this).val();
});
于 2012-09-19T07:07:06.410 回答
0
$('.textClass').each(function(index) {

    dictionary = {};
    dictionary['[' + index + '].Key'] = $(this).attr('id');
    dictionary['[' + index + '].Value'] = $(this).val();

});
于 2012-09-19T07:13:35.923 回答