2010-04-30 3 views
3

Fondamentalement, ce que j'essaie de faire est de mettre à jour l'attribut de valeur d'un champ d'entrée caché contenu dans l'élément sélectionné lorsque l'interface utilisateur selectable s'arrête.Les éléments jQuery selectable() mettent à jour les valeurs

Si l'élément est sélectionné, la valeur de l'entrée doit être l'attribut name de cette LI particulière, tandis que si l'élément n'est pas sélectionné, la valeur doit être mise à jour comme vide.

HTML Exemple:

<ul id="selector"> 
    <li class="networkicon shr-digg" name="shr-digg"> 
     <div></div> 
     <label>Digg</label> 
     <input type="hidden" value="" name="bookmark[]" /> 
    </li> 
    <li class="networkicon shr-reddit" name="shr-reddit"> 
     <div></div> 
     <label>Reddit</label> 
     <input type="hidden" value="" name="bookmark[]" /> 
    </li> 
    <li class="networkicon shr-newsvine" name="shr-newsvine"> 
     <div></div> 
     <label>Newsvine</label> 
     <input type="hidden" value="" name="bookmark[]" /> 
    </li> 
</ul> 

Exemple de script:

$(function() { 
    $("#selector").selectable({ 
     filter: 'li', 
     selected: function(event, ui) { 
      $(".ui-selected").each(function() { 
       $(this).children('input').val($(this).attr('name')); 
      }); 
     }, 
     unselected: function(event, ui) { 
      $(".ui-selected").each(function() { 
       $(this).children('input').val(''); 
      }); 
     } 
    }); 
}); 

Répondre

1
$(this).children('input').attr("value", $(this).attr('name')); 
... 
$(this).children('input').attr("value", ''); 

Est-ce que le résoudre?

http://api.jquery.com/val/:

Description: Get la valeur courante de le premier élément dans l'ensemble de éléments appariés.

+0

Oui, bien sûr, la chose la plus simple permettrait de résoudre le problème! haha Merci. – Josh

1

Votre syntaxe .each est incorrecte, vous semblez mélanger avec la syntaxe $.each. Il devrait être:

$(".ui-selected").each(function() { 
    $(this).children('input').val($(this).attr('name')); 
}); 
+0

Oui, désolé ... J'ai oublié de supprimer cela lors de la publication de l'échantillon. – Josh

Questions connexes