2012-07-27 3 views
0

Здравствуйте, у меня есть цикл, который отображает элементы в частичном представлении. Элементы представляют собой listboxesfor, количество listboxesfor rendered варьируется в зависимости от состояния, которое недоступно в частичном представлении. То, что я пытаюсь сделать, - найти количество списков, отображаемых с помощью функции javascript и, возможно, первого списка, а затем я мог бы пропустить их. другой способ сделать это присвоить имя класса, а затем подсчитать, но я не могу этого сделать. пожалуйста помоги.делает document.getelementbytagname для mvc listboxfor

function dosomething() { 
      var x = document.getElementsByTagName("listbox");//This line always returns O 
      alert(x.length); 
} 

@Html.ListBoxFor(model => model.ServiceTypes, new MultiSelectList(RunLog.Domain.Lists.GlobalList.PartsServiceTypes(), "ID", "Name"), new { style = "width: 200px; height: 80px;", id = "lstbox", name="listbox", onclick = "dosomething()" }) 

ответ

0

В HTML отсутствует такая вещь, как listbox. Этого просто не существует. В HTML-терминах (это то, что вы используете wit hjavascript) элемент называется select с атрибутом multiple="multiple", допускающим множественный выбор.

Итак:

var x = document.getElementsByTagName("select"); 
// now when looping over this x variable make sure 
// you check for the presence of the multiple="multiple" 
// attribute which is the only thing which distinguishes 
// what you call a ListBox from a DropDown. 
for (var i = 0; i < x.length; i++)​ { 
    var element = x[i]; 
    // I am not even sure if this is a good test for the presence 
    // of the multiple attribute. Maybe it should work but can't guarantee 
    // cross browser correctness 
    if (element.multiple) { 
     // we've got a list box here 
    } 
} 

И если вы решите использовать JQuery:

var listBoxes = $('select[multiple]'); 
+0

Где вы Назвав 'document.getElementsByTagName ("выбрать") метод'? Вы дождались загрузки DOM? –

+0

отлично работает! последнее, если я могу спросить, все списки будут иметь одинаковые имена. все, что выбрано из первого списка, должно быть выбрано в остальных списках. вот почему я зацикливаю их. действительно ценю это – user721

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