2010-07-09 79 views
0

我试图迭代jQuery中的复杂类型绑定通过提交到IEnumerable行动参数的Json表示。jquery通过动态复杂的对象迭代提交到asp.net mvc行动

的Html

<input type="hidden" value="0" name="value.index" /> 
<input type="text" value="textone" name="value[0].InputValue" id="value[0].InputValue" /> 
<input type="hidden" value="0" name="value[0].Id" id="value[0].Id" /> 

的jQuery

var value = $('#value[0].InputValue').val() 

返回未定义的值;然而,如果我有一个格式为“myId”的控件,那么我可以访问该控件的值。

我错过了什么吗?或者这是不可能的?

回答

3

#用于通过Id查找元素。如果你想通过名称查找元素,它遵循不同的语法...试试这个

$("input[name=value\[0\].InputValue]"); 
+0

啊,忘了逃脱了[]的 - 好抓到Teja :) – Dan 2010-07-09 14:19:31

+0

非常,这就是我寻找:-) – WestDiscGolf 2010-07-09 14:30:49

1

我不认为[]的ID是允许的。 MVC用下划线代替他们,当我渲染的Obj[0].Property

一个名字,我想尝试用名字获取输入文本框:

编辑 - 逃避括号:)

$('input[name=value\[0\].InputValue]').val() 

你可以做各种属性选择太多:

http://api.jquery.com/category/selectors/

希望帮助!

+0

Ta,辉煌! :-) – WestDiscGolf 2010-07-09 14:31:06

0

出现此问题是因为[和]字符在jQuery选择器中表示特殊的东西,即它们指定了对属性的要求。所以,当你说

$('#value[0].InputValue') 

这意味着将jQuery“元件与ID的 “价值”属性 “0” 本并与css类inputValue的施加

正如其他有人建议,用$('input [name = value [0] .InputValue')`代替