我正在尝试使用gem nested_form编译this bug的变通方法。不需要知道ruby / rails,这一切都与javascript有关。
简而言之,当我的页面重新加载时,我有一些具有相同模型ID的重复字段(在隐藏输入的value属性中)。
编辑:添加了值为50的非重复输入,不应修改
<tbody class="echange fields>
...
<input id="etude_echanges_attributes_0_id" type="hidden" name="etude[echanges_attributes][0][id]" value="42">
</tbody>
<tbody class="echange fields>
...
<input id="etude_echanges_attributes_1_id" type="hidden" name="etude[echanges_attributes][1][id]" value="42">
</tbody>
<tbody class="echange fields>
...
<input id="etude_echanges_attributes_2_id" type="hidden" name="etude[echanges_attributes][1][id]" value="50">
</tbody>
2个第一个输入值为42.只有最后一个是好的,第一个是重复。所以基本上我需要一个代码来扫描所有id=".*attributes_x_id"
及其value
,并且只保留最后一个代码。
所以在我上面给出的例子中,javascript应该检测到......
<input id="etude_echanges_attributes_0_id" ... value="42">
<input id="etude_echanges_attributes_1_id" ... value="42">
...具有相同的42
值,这意味着它们是重复的
然后它会删除除最后一个之外的所有内容。此外,不应修改以下内容,因为它是模型ID值为50
的唯一一个<input id="etude_echanges_attributes_2_id" ... value="50">
编辑:可以更改的参数是
_attributes
_attribute_xxx
input
:value="yyy"
(注意42和50只是示例,真正的是MongoDB ID,看起来像5470b5075374611500040000)
我想做什么:
<input>
(参见上文)echanges
_echanges_attributes_
echange
现在,对我来说一个问题的步骤是步骤1。我不知道用简单的jquery / css选择器做它是否可行?
答案 0 :(得分:1)
嗯,你可以在jQuery中做到这一点:
$('input[id^="etude_echanges_attributes"][value="42"]:not(:last)').remove();
我们匹配id
以确保我们获得正确的<input>
,而不仅仅是<input>
。{由于id
具有变量值,因此我们无法使用#
。因此,我们使用属性选择器来匹配前缀值。同时在选择器中放入value
。