2010-07-09 2 views
0

Я пытаюсь перебрать сложную привязку типа в jQuery, чтобы представить представление Json через параметр действия IEnumerable.jquery итерация через динамический сложный объект submit to asp.net mvc action

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

# используется для определения элемента по идентификатору. Если вы хотите, чтобы найти элемент по имени, то другой синтаксис ... Попробуйте

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

Ах, забыл избежать [] - хороший улов Teja :) – Dan

+0

Та очень, это было то, что я был ищу :-) – WestDiscGolf

1

Я не думаю, что [] 's разрешены в идентификаторах. MVC заменяет их подчеркиванием, когда я сделать текстовое поле с именем Obj[0].Property

Я бы попытаться получить вход под названием:

EDIT - избежать скобки :)

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

Вы можете сделать различные селекторы атрибутов тоже:

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

Надеюсь, что это поможет!

+0

Ta, блестящий! :-) – WestDiscGolf

0

Эта проблема возникает из-за того, что символы [и] означают особые вещи в селекторе jQuery, а именно они определяют требования к атрибутам. поэтому, когда вы говорите

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

, что означает JQuery «элемент с идентификатором„значение“ и атрибут„0“настоящего и с классом CSS InputValue прикладной.

В других предложили вместо этого использовать $ ('input [name = value [0] .InputValue') `.

Смежные вопросы