Hi Miguel, you could use a global counter. e.g.
var themesCounter = 0; $('#AddTheme').bind('click', function(){ ... $theme.append('<input type="hidden" name="Themes[themesCounter].Subject" value = "' + $subject.val() + '" />'); ... themesCounter++; }); by(e) Stephan 2009/2/8 shapper <mdmo...@gmail.com>: > > Hi, > > I am adding list items to a list as follows: > > $('#AddTheme').bind('click', function(){ > > // Other code > > $theme = $('<li class="Themes"></li>').appendTo > ('#Themes'); > > $theme.append('<input type="hidden" name="Themes[0].Subject" > value = "' + $subject.val() + '" />'); > $theme.append('<input type="hidden" name="Themes > [0].LevelsCsv" value = "' + levelsTypes.join(",") + '" />'); > $theme.append('<input type="hidden" name="Themes > [0].Description" value = "' + description.val() + '" />'); > > }); > > Basically, every time I add a new item I want to give the next number > to Themes[0], i.e., Themes[1]. > > If I add 3 themes I will have Themes[0], Themes[1], Themes[2] > > Basically, I need to have at all times themes numbered as 0, 1, 2, ... > > Could someone please help me out? > > Thanks, > Miguel > > Just in case, here is my entire code fully commented: > > $('#Cancel').click(function() { location.href = '/Account/ > List'; }); > > // Themes >> > > // Define remove event > $('.Remove').livequery('click', function(event) { > $(this).parent().remove(); > }); > > // Bind add button > $('#AddTheme').bind('click', function(){ > > // Define valid > var valid = new Boolean(true); > > // Define fields > $description = $('#Description'); > $levels = $('input[name="Levels"]:checked + label'); > $levelsTypes = $('input[name="Levels"]:checked'); > $subject = $('#Subject option:selected'); > > // Map levels > levels = $levels.map(function() { return $(this).text(); }).get > (); > levelsTypes = $levelsTypes.map(function() { return $(this).val > (); }).get(); > > // Check subject > if (!$subject.val()) { valid = false; } > > // Check levels > if (!levels.length) { valid = false; } > > // Check boolean > if (valid) { > > // Define theme > $theme = $('<li class="Themes"></li>').appendTo > ('#Themes'); > > // Add fields > $theme.append($subject.text()).append('<br />'); > $theme.append( Levels(levels) + '<br />' ); > if ($description.val()) { $theme.append($description.val > ()).append('<br />'); } > > // Add button > $theme.append('<a href="#Remove" class="Remove">Remover</ > a>'); > > // Add inputs > $theme.append('<input type="hidden" name="Themes[0].Subject" > value = "' + $subject.val() + '" />'); > $theme.append('<input type="hidden" name="Themes > [0].LevelsCsv" value = "' + levelsTypes.join(",") + '" />'); > $theme.append('<input type="hidden" name="Themes > [0].Description" value = "' + description.val() + '" />'); > > // Add input > //$theme.append(' <input type="hidden" name="Themes" value = > "' + theme + '" />'); > > } > > }); > > // Levels > function Levels(levels) { > > // Check levels > if (levels.length < 2) return levels.join(''); > > // Define first > var first = levels.slice(0, -1), last = levels.slice(-1); > > // Define result > var result = first.join(', '); > > // Check last > if (last) { result += ' and ' + last; } > > // Return results > return result; > > } // Levels >