2013-10-07 2 views
0

У меня есть приложение жереха, в котором я должен использовать JavaScript для получения значения элементаПолучение значения по имени в приложении JavaScript/бритве

@for(int i=0; i< Model.Count; i++){ 
             <input type="text" value="@Model[i].age" name="[email protected](i)" /> 
           HtmlActionLink("new age","Change", new { age = "age" + i.ToString()}); 
            } 

мне нужно, чтобы получить значение каждого тега age: new { age = "age" + i.ToString() не работал, и я должен заменить его скриптом javascript, используя метод document.getElementsByName

Как я могу изменить свой код для выполнения этой задачи?

ответ

2

Я бы просто добавить класс к каждому входному элементу, который дает ему некоторое значение (например, «вход возраста»):

<input class="input-age" type="text" value="@Model[i].age" name="[email protected](i)" /> 

И тогда вы могли бы выбрать все входы от имени класса и не нужно полагаться на динамически назначаемый имя от вида двигателя:

var ages = document.querySelectorAll('input.input-age'); 

Или, если вам нужно найти значение для конкретного индекса возраста, без добавления имени класса:

var ageIndex = 4; 
var age = document.querySelector('input[name="age' + ageIndex + '"]').value; 

FYI, для IE, он будет работать только в версиях 8 или выше из-за функции querySelectorAll, но вы можете использовать другие методы.

Если JQuery на столе, вы не могли бы изменить что-нибудь и использовать «начинается с» селектор, чтобы получить все «возрастные» элементы:

var ages = $('input[name^="age"]'); 

Или, добавив имя класса:

var ages = $('.input-age'); 

Или, выследить значение для конкретного ввода:

var ageIndex = 4; 
var age = $('input[name="age' + ageIndex + '"]').val(); 

с последним примером, вы не необходимо добавить имя класса;

+0

Но мне нужно только текущее значение возраста не для всех возрастных таблиц –

+1

@Lamloumi: Как вы определяете «текущее значение возраста»? На вашей странице есть входы с нулевым множеством. –

+0

Я имею в виду значение тега с именем name = age @ (i) "' –

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