Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 敲除和JQuery UI拖放表单生成器_Javascript_Jquery_Jquery Ui_Knockout.js_Knockout Sortable - Fatal编程技术网

Javascript 敲除和JQuery UI拖放表单生成器

Javascript 敲除和JQuery UI拖放表单生成器,javascript,jquery,jquery-ui,knockout.js,knockout-sortable,Javascript,Jquery,Jquery Ui,Knockout.js,Knockout Sortable,我想使用knockout和jqueryui实现一个表单生成器 我找到了敲除可排序插件以及更多的材料,并为表单生成器实现了一个框架 基本上,我有一个可观察数组,它保存所有可用字段类型及其属性,还有一个数组保存已添加到表单中的控件。我添加了一个绑定,只需单击它就可以为我添加一个字段,这样可以节省快速用户的拖放时间。此外,还会在添加的字段上显示一个单击事件,该事件将转到字段详细信息(现在仅显示警报) 我想为添加到表单中的每个表单元素分配一个id。如果将另一个元素添加到表单中,则该元素的id应增加;如果

我想使用knockout和jqueryui实现一个表单生成器

我找到了敲除可排序插件以及更多的材料,并为表单生成器实现了一个框架

基本上,我有一个可观察数组,它保存所有可用字段类型及其属性,还有一个数组保存已添加到表单中的控件。我添加了一个绑定,只需单击它就可以为我添加一个字段,这样可以节省快速用户的拖放时间。此外,还会在添加的字段上显示一个单击事件,该事件将转到字段详细信息(现在仅显示警报)

我想为添加到表单中的每个表单元素分配一个id。如果将另一个元素添加到表单中,则该元素的id应增加;如果表单中的元素被重新排列,则元素的id也应更改

我的问题是我应该在哪里以及如何执行此ID分配,然后重新分配,以便每次添加或移动新字段时,表单元素的ID都是连续的

我假设我可以为绑定处理程序中删除的每个元素分配一个id,但以后如何控制它呢

$(element)[0].id = 'field-nr-' + globalVariable++;
这也意味着我必须更改我试图避免的可淘汰排序插件


代码在这里:

如果我理解正确,那么您可能可以使用
$index
可观察的,在
foreach
中绑定时可用

因此,您可以绑定如下内容:

<table style="width : 100%" data-bind="attr: { id: 'field-nr-' + $index() }" >

在拖动字段时,id将根据其在observableArray中的位置保持更新


我更新了你的提琴(并更新了KO版本),以显示
td

中的值,我如何在javascript中为所选字段获取此id?谢谢。如果您需要用JavaScript表示一个id,那么一个好的选项是这个答案的
索引扩展名。您可以使用类似的方法来填充id,而不使用
$index
(该答案来自$index可用之前)。否则,您可能会偷偷摸摸地将其填充到一个“假”绑定(`data bind=“updateIndex:id($index())”)中。。。我不会想到一个假的自定义绑定来更新ID。