2010-04-30 96 views
3

基本上我想要做的是在selectable()UI停止运行时更新所选元素中包含的隐藏输入字段的值属性。jQuery selectable()元素更新值

如果选择元素,则输入的值应该是该特定LI的名称属性,而如果未选择该元素,则该值应该更新为空。

HTML样本:

<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> 

脚本示例:

$(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(''); 
      }); 
     } 
    }); 
}); 

回答

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

这是否解决?

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

描述:获取的 的电流值的集合中的 匹配元素的第一个元素。

+0

是的,当然最简单的事情会解决问题!哈哈 谢谢。 – Josh 2010-04-30 16:56:17

1

您的.each语法不正确,您似乎将语法与$.each混合在一起。它应该是:

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

是的,对不起...忘记删除发布样本时。 – Josh 2010-04-30 17:03:07