如何通过使用 jQuery 将字段集包装在列表项中来使字段集可排序

发布于 2024-11-04 16:54:00 字数 1272 浏览 1 评论 0原文

我在表单中有一组字段集元素。我需要让它们可以排序。大多数插件都是基于对列表进行排序的想法 - 所以我试图将一组变成

<fieldset>
  <input type="text" value="1" id="item_0_sort_1" name="item[0][sort]">
</fieldset>
<fieldset>
  <input type="text" value="1" id="item_0_sort_2" name="item[0][sort]">
</fieldset>
<fieldset>
  <input type="text" value="1" id="item_0_sort_3" name="item[0][sort]">
</fieldset>

<ul>
  <li>
    <fieldset>
      <input type = "text" value="1" id="item_0_sort_1" name="item[0][sort]">
    </fieldset>
  </li>
  <li>
    <fieldset>
      <input type = "text" value="2" id="item_0_sort_2" name="item[0][sort]">
    </fieldset>
  </li>
  <li>
    <fieldset>
      <input type = "text" value="3" id="item_0_sort_3" name="item[0][sort]">
    </fieldset>
  </li>
</ul>

不,这我无法更改 HTML :-( )

我可以包装字段集不问题,

$('form').children('fieldset').wrap('<li>');

但似乎不知道如何将字段集元素移动到

    中?现在我计划使用 jquery.dragsort 来移动项目,并使用 jQuery相应地重新编号 input.val() - 对于回调的任何建议也将不胜感激,

或者如果有一种方法可以直接对字段集进行排序,那我会以正确的方式进行处理吗?我怀疑会更好。

I have a group of fieldset elements within a form. I need to make them sortable. Most of the plug-ins are based on the idea of a sorting a list - so I'm trying to turn a set of

<fieldset>
  <input type="text" value="1" id="item_0_sort_1" name="item[0][sort]">
</fieldset>
<fieldset>
  <input type="text" value="1" id="item_0_sort_2" name="item[0][sort]">
</fieldset>
<fieldset>
  <input type="text" value="1" id="item_0_sort_3" name="item[0][sort]">
</fieldset>

into

<ul>
  <li>
    <fieldset>
      <input type = "text" value="1" id="item_0_sort_1" name="item[0][sort]">
    </fieldset>
  </li>
  <li>
    <fieldset>
      <input type = "text" value="2" id="item_0_sort_2" name="item[0][sort]">
    </fieldset>
  </li>
  <li>
    <fieldset>
      <input type = "text" value="3" id="item_0_sort_3" name="item[0][sort]">
    </fieldset>
  </li>
</ul>

(And no, this I can't change the HTML :-( )

I can wrap the fieldsets no problem,

$('form').children('fieldset').wrap('<li>');

but can't seem to see how to either move the fieldset elements into a <ul>? Right now I'm planning on using jquery.dragsort to move the items around, and have jQuery renumber the input.val()s accordingly - any suggestions for the callback would be greatly appreciated too.

Or am I going about it the right way? if there's a way to sort the fieldsets directly, that would be better I suspect.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少女净妖师 2024-11-11 16:54:00

使用wrapAll

$('form li').wrapAll("<ul/>");

Use wrapAll:

$('form li').wrapAll("<ul/>");
許願樹丅啲祈禱 2024-11-11 16:54:00

我准备了一个DEMO

这是标记:

<form>
    <fieldset>
      <input type="text" value="1" id="item_0_sort_1" name="item[0][sort]">
    </fieldset>
    <fieldset>
      <input type="text" value="1" id="item_0_sort_2" name="item[0][sort]">
    </fieldset>
    <fieldset>
      <input type="text" value="1" id="item_0_sort_3" name="item[0][sort]">
    </fieldset>
</form>

和 jQuery:

$('form >*').wrap('<li>');
$('form li').wrapAll('<ul>');

I prepared a DEMO.

Here's the markup:

<form>
    <fieldset>
      <input type="text" value="1" id="item_0_sort_1" name="item[0][sort]">
    </fieldset>
    <fieldset>
      <input type="text" value="1" id="item_0_sort_2" name="item[0][sort]">
    </fieldset>
    <fieldset>
      <input type="text" value="1" id="item_0_sort_3" name="item[0][sort]">
    </fieldset>
</form>

and the jQuery:

$('form >*').wrap('<li>');
$('form li').wrapAll('<ul>');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文