我可以使用jQuery UI进行ul排序。我可以对一组div做同样的事情。这意味着每个项目都可以移动和改变位置 1-似乎不可能做一个可排序的表格,这是正确的吗? 2-我试过的一个解决方案是将每个表单输入放在li或div中。但是,这是最好的方法吗?
JQUERY:
$(function() {
$('#sortable').sortable();
});
HTML:
<ul id="sortable">
<li id="1">item1</li>
<li id="2">item2</li>
<li id="3">item3</li>
</ul>
<form id="sortable" action="extern.php" method="post">
<input type="text" id="item1" name="item1" value="" ><br>
<input type="text" id="item2" name="item2" value="" ><br>
<input type="text" id="item3" name="item3" value="" ><br>
</form>
答案 0 :(得分:7)
Sortable()有一个名为cancel的选项,其默认值为:“input,textarea,button,select,option”,如果你开始匹配选择器的元素,则会阻止排序。
#placement-bottom {
display:none !important;
visibility:hidden !important;
}
你应该做得好。
答案 1 :(得分:3)
您应该将text inputs
和相应的labels
打包到li
。
<强> DEMO 强>
HTML:
<h3>Sortable form elements</h3>
<form id="" action="extern.php" method="post">
<ul id="sortable">
<li class="ui-state-default">
Fname : <input type="text" id="fname" name="fname" value="" >
</li>
<li class="ui-state-default">
Lname : <input type="text" id="lname" name="lname" value="" >
</li>
<li class="ui-state-default">
Email : <input type="text" id="email" name="email" value="" >
</li>
</ul>
</form>
JS代码:
$(function() {
$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();
});
答案 2 :(得分:0)
当我在表单中使用TABLE,TR和TD元素时,我能够添加排序行为。但是,我需要添加LABEL来处理排序,因为我无法使用普通的INPUT类型=&#34; text&#34;用于处理排序的字段。 JSFiddle
$(function () {
$('form').sortable({
items: ".sort"
});
});
HTML
<form id="sortable" action="extern.php" method="post">
<table>
<tr class="sort">
<td>
<label>1</label>
</td>
<td>
<input type="text" id="Text1" name="item1" value="">
</td>
</tr>
<tr class="sort">
<td>
<label>2</label>
</td>
<td>
<input type="text" id="Text2" name="item2" value="">
</td>
</tr>
<tr class="sort">
<td>
<label>3</label>
</td>
<td>
<input type="text" id="Text3" name="item3" value="">
</td>
</tr>
</table>
</form>