Как изменить каждый элемент в сетке? - PullRequest
0 голосов
/ 02 декабря 2011

У меня есть сетка, как это.Как изменить индекс для каждого элемента, т. Е. Иметь изображения [0], изображения [1], изображения [2]?

<div class="grid">

<div class="gridItem">
  <div><img src="image1.jpg"  class="gridThumb" /></div>
  <input type="hidden" name="images[0]" value="image1.jpg" />
</div>

<div class="gridItem">
  <div><img src="image2.jpg"  class="gridThumb" /></div>
  <input type="hidden" name="images[2]" value="image2.jpg" />
</div>

<div class="gridItem">
  <div><img src="image3.jpg"  class="gridThumb" /></div>
  <input type="hidden" name="images[3]" value="image3.jpg" />
</div>

</div>

Это часть представления Создать на сайте MVC3.Пользователь создает модель и загружает файлы, затем он может удалить некоторые из них и нажать «Создать».Мне нужно добавить имена изображений в модель и сохранить этот список в дБ.

    [HttpPost, ActionName("Create")]
    public ActionResult Create(MyModel m, string[] images)

Но если пользователь удалил некоторые элементы, мне нужно переиндексировать элементы images [i], поскольку привязка MVC не может передать массив с отсутствующими элементами,

Ответы [ 3 ]

3 голосов
/ 02 декабря 2011

Вы можете попробовать:

$(function(){
  var gridCnt = 0
  $('.grid').find('.gridItem').each(function(){
    $(this).attr('name','images[' + gridCnt + ']')
    gridCnt++
  })
})
0 голосов
/ 02 декабря 2011
$('.grid .gridItem input').each( function(index, elem){
   elem.attr("name","images["+index+"]");
});
0 голосов
/ 02 декабря 2011
var count=0,$els = $('.gridItem input');

$.each($els,function(){
    $(this).attr('name',"images[" + count + "]");
    count++;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...