【问题标题】:Populate multiple fields with autocomplete and same id使用自动完成和相同的 id 填充多个字段
【发布时间】:2014-07-30 22:07:08
【问题描述】:

我很难解决这个问题!

基本上,我有这种类型的表格:

<div class="row loop">
        <label class="input"> 
            <input type="text" name="ajax1" id="_ajax1[]" class="ajax1">
        </label>
        <label class="input">
             <input type="text" name="ajax2" id="_ajax2[]" class="ajax2">
        </label>
</div>

<div class="row loop">
        <label class="input"> 
            <input type="text" name="ajax1" id="_ajax1[]" class="ajax1">
        </label>
        <label class="input">
             <input type="text" name="ajax2" id="_ajax2[]" class="ajax2">
        </label>
</div>

每个 div 在我的表单中都算作一行,我有 10 多个这样的 div。

我正在自动完成第一个“ajax1”输入,没有问题,每个。 现在,我想要的是更改“ajax2”输入的值,遵循用户为“ajax1”字段的自动完成选择的内容。这里的问题是,当我更改“ajax2”值时,它会更改所有 div 的“ajax2”值。

我真正想要的是,对于每个 div,自动完成“ajax1”值,然后根据所选内容填充“ajax2”。

当我动态添加 div 时,我无法使 ID 唯一..

非常感谢!

【问题讨论】:

  • Err... Id 应该是唯一的...!
  • 当我动态添加 div 时,我无法创建唯一的 ID..
  • 你可以。使用计数器变量。
  • 我必须补充一点,我正在使用 Twig..

标签: javascript jquery html symfony autocomplete


【解决方案1】:

假设在自动完成上有一个事件处理程序,您可以使用最近/查找对来获取您想要的元素。处理函数内部的一个简单示例如下所示:

$(this).closest('.row').find('.ajax2').val('NEW VALUE');

您从基本元素开始(附带自动完成功能),向上到包装器 div,然后找到想要的元素。

请注意,这只是在给定结构中查找元素的一种技巧,您应该尝试找到一种方法来生成唯一 ID 并根据它们识别元素。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 2011-08-18
    • 2021-02-18
    • 1970-01-01
    相关资源
    最近更新 更多