2

我有一个包含 10 个选择字段的 HTML 数组,每次调用 div-popup 时都必须由 jQuery 填充。(每个人都有相同的选项)我们有数百名员工的定期需求,此表格旨在允许将人员配置请求转发给上级管理部门以批量方式批准。我将使用 .serialize 提交表单,但我不清楚如何使用正确的输入选择信息初始化此元素。我能找到的所有信息都是关于提交表单数组的,我已经知道该怎么做了。

这是HTML结构:

<select id="detJobsCR[]" name="detJobsCR[]"> </select>

这是我填充选择字段的尝试:

$.post("events.php",{a: 'detadd-joblist', dept_id: deptID}, function(data) {
    for(var i=0;i<10;i++){
        $('#detJobsCR[i]').html(data);
    }   
});

(我尝试明确定义每个元素数组位置 [0],[1]..etc 并没有帮助。)

返回的数据是简单的 HTML,例如:

<option value='38'>Admin Support Assistant I</option>
<option value='39'>Admin Admin Support Assistant II</option>...

感谢您提供的任何帮助!

仅供参考更新:穆萨的回答完美。事实证明,出于同样的原因,我也遇到了日期和时间选择器无法正常工作的问题。当我将它们转换为类时,我可以使用它(如下),并且现在都可以正常工作:

$(".detDateStart").datepicker();
4

2 回答 2

2

ID 应该是唯一的,因此每个选择都应该有自己的 ID。如果您希望有一个标识符来表示所有选择,您可以使用一个类,例如<select class="detJobsCR" name="detJobsCR[]"> </select>,然后选择它们$('.detJobsCR')并将它们的 html 设置为 .html(data)

$.post("events.php",{a: 'detadd-joblist', dept_id: deptID}, function(data) {
    $('.detJobsCR').html(data);
});
于 2013-02-20T23:50:24.153 回答
1

你的问题有两个方面:

  1. 你把i引号放在里面,所以它没有解释变量 i 的值
  2. 即使i不在引号内,当 jquery 解析[i]表达式中的 时,它也在寻找具有 iddetJobsCRi定义了属性的元素。

由于您只有一个元素,因此您可以使用 IDdetJobsCR[]来查询它: $('#detJobsCR\\[\\]') 您需要转义[and]字符,以便 jquery 知道它是 ID 的一部分而不是解析规则(用于解析/查找属性)。

正如 Musa 所建议的,您可以通过使用不需要转义值的简单类名来使您的生活更轻松。但是,如果您确实想通过 id 进行选择,上面的示例应该可以解决问题。

于 2013-02-20T23:56:07.720 回答