2013-03-11 51 views
1

我想根据无序列表中列表项目的顺序在文本字段中排列值。 情况如下表所示: -根据文本框中重新排列的无序列表获取值

<ul id="sort"> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
    <li>4</li> 
    <li>5</li> 
</ul> 

我使用上面提到的名单上的jQuery用户界面的sortable()功能。 我需要复制的文本框的值相同的安排: -

<input type="text" value="" /> 

例如 - 如果列表重新排列为3,2,5,4,1,文本框的值应该是3,2,5,4,1: -

<input type="text" value="3,2,5,4,1" /> 

提前感谢!

+0

你已经?也许小提琴? – dfsq 2013-03-11 13:21:31

+0

你可以循环访问列表并使用$(“input #idhere”)。val(“val here”)将值追加到输入框中 – tymeJV 2013-03-11 13:21:52

+0

请添加http://jsfiddle.net/ – howderek 2013-03-11 13:28:42

回答

0

例如像这样:

$('#sort').sortable({ 
    update: function(e, ui) { 
     var val = $(this).children().map(function() { 
      return $(this).text(); 
     }).get().join(); 
     $('#text').val(val); 
    } 
}); 

http://jsfiddle.net/wzsuH/1/

+0

非常感谢!这就是我想要的 – user2131144 2013-03-11 14:01:13

+0

很高兴帮助:) – dfsq 2013-03-11 14:01:46

0

使用排序的停止活动,检查的变化.. toArray得到<li>列表中的位置的阵列...与,加入它,附加到输入

这里你去..

HTML

<ul id="sort"> 
    <li id="1">1</li> 
    <li id="2">2</li> 
    <li id="3">3</li> 
    <li id="4">4</li> 
    <li id="5">5</li> 
</ul> 

jQuery的

$('#sort').sortable({ 
    stop: function(event, ui) { 
    var sortedVal=$(this).sortable("toArray"); 
    var inputVal=sortedVal.join(','); 
    $('#inputid').val(inputVal); 
    } 
}); 

working fiddle here