javascript - AJAX 附加选项无效

标签 javascript ajax prototype html-select

我尝试使用 AJAX 请求加载选择的选项。 AJAX请求正确并返回我想要的内容。这是我的代码:

new Ajax.Request(url, {
            method: 'post',
            parameters: {foldertype_id: foldertype},
            onSuccess: function(answer) {
                var folders = JSON.parse(answer.responseText).folders;
                var selectToFill = $('my_select_box');
                for(var i = 0; i <= folders.length; i ++){
                    selectToFill.append('<option id="' + folders[i].value + '" value="' + folders[i].ID + '">' + folders[i].label + '</option>');
                }
            }
        });

该选项已很好地添加到选择中,但它们没有出现在下拉列表中。在 Chrome 中,我可以看到选项文本中没有颜色语法。请参阅此屏幕截图以更好地理解:/image/5oFKf.jpg

如您所见,灰色选项是 AJAX 添加的选项,我在选择下拉列表中看不到这些选项

为什么会发生这种情况?

提前致谢

最佳答案

在这里得到答案:https://arstechnica.com/civis/viewtopic.php?t=209624

通常 DOM 插入使用 .insert

示例:

new Ajax.Request(url, {
        method: 'post',
        parameters: {foldertype_id: foldertype},
        onSuccess: function(answer) {
            var folders = JSON.parse(answer.responseText).folders;
            var selectToFill = $('my_select_box');
            for(var i = 0; i <= folders.length; i ++){
                selectToFill[0].insert({after: '<option id="' + folders[i].value + '" value="' + folders[i].ID + '">' + folders[i].label + '</option>'});
            }
        }
 });

从上面的代码中,您应该指向 select 元素内的任何最后一个选项,您将在其后附加该选项,例如索引 01

示例代码段

const test = ["test1","test2"];

test.forEach(function(index,item){
	const sel = $('my_select');
  sel[0].insert({after: "<option value='"+item+"'>"+item+"</option>"});
});
<script src="https://fastcdn.org/Prototype/1.7.3/prototype.js"></script>
<select id="my_select" placeholder="test">
<option value="test">test</option>
</select>

希望对您有所帮助。

关于javascript - AJAX 附加选项无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42783586/

相关文章:

Javascript - 获取和设置基元的属性隐式创建对象包装器

javascript - 如何使 fontawesome4 微调器图标在 dom 上占 100% 大小?

javascript - 为什么对同一 ASP.NET MVC 操作的多个同时 AJAX 调用会导致浏览器阻塞?

Javascript 严格相等的奇怪之处

javascript - 有没有办法在 mySQL 数据库中存储对象?

javascript - Google Plus 或 Facebook Style Image Popup Viewer?

php - 使用复选框 AJAX 过滤 MySQL 结果

javascript - 在 JavaScript 中制作原型(prototype)

Javascript:将方法添加到函数原型(prototype)

javascript - react 绑定(bind)到复选框并根据选中更新状态