3

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

如果选择了元素,那么输入的值应该是特定 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('');
            });
        }
    });
});
4

2 回答 2

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

这能解决吗?

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

描述:获取匹配元素集中第一个元素的当前值。

于 2010-04-30T16:50:42.560 回答
1

您的.each语法不正确,您似乎将语法与$.each. 它应该是:

$(".ui-selected").each(function() {
    $(this).children('input').val($(this).attr('name'));
});
于 2010-04-30T16:55:17.610 回答