由于使用INNERHTML似乎是一个错误,我的SELECT OPTION标签变成空白(基于我能够做的研究) - 我必须弄清楚如何创建一个变量供以后使用,它包含基于以下返回的JSON数据的OPTION标记,并且没有任何乐趣;
[
{"saying":"Select a saying..."},
{"saying":"I rock the camera!"},
{"saying":"Ask me about Holland"},
{"saying":"I'm with the Photographer!"},
{"saying":"I'd love to frame you!"}
]
下面是我的两个核心函数(函数加载列表和函数()),后者是将启用选择标记的填充并将参数传递给第一个然后从mysql DB获取数据的函数。 {注意:select标签适用于我今天的代码,如果仅在html文件的主体内,它只在INNERHTML中并使用document.getElementById它失败。
我在IE,FireFox,Safari和Chrome上试过这个。我为什么要这样做?我正在努力创建一个模态弹出窗口,其中包含许多可选择的T恤选项,并根据这些选项指导您通过选择语句等。如果INNERHTML可行,我会完成,因为它更改了DIV的预期除了我的SELECT标签。
工作代码: ......
<div id='target' class="target">
<p>in the div</p>
<p><select id="say1" name="say1" onchange="custom(this.id)" size="1"></select></p>
</div>
.......
不工作代码: .........
{
div = document.getElementById('target');
str = '<select id="say1" name="say1" onchange="custom(this.id)" size="1"></select>';
div.innerHTML = str;
}
..............
/*function to load a list*/
function loadlist(selobj,url,nameattr)
{
$(selobj).empty();
$.getJSON(url,{ data: 123, t: (new Date()).getTime() },function(data) {
$.each(data, function(i,obj)
{
$(selobj).append(
$('<option></option>')
.val(obj[nameattr])
.html(obj[nameattr]));
});
});
}
$(function()
{
//By default, jQuery will load from cache if the request is same
loadlist($('select#colour').get(0), 'getcolours.php?getlist=colour','colour');
loadlist($('select#saying').get(0), 'getsaying.php?getlist=adultsaying','saying');
loadlist($('select#say1').get(0), 'getsaying.php?getlist=adultsaying','saying');
});
社区的帮助是告诉我在我的loadlist函数中我编写了将JSON数据返回到以后可以使用的变量的能力,理想情况下添加打开和关闭的OPTION标记?
我对其中的一些人有点新意,因为我必须完成这个项目,所以概念正在逃避我,提前感谢。
答案 0 :(得分:0)
您需要至少一个选项才能使onchange功能正常工作
div = document.getElementById('target');
str = '<select id="say1" name="say1" onchange="custom(this.id)" size="1"><option value="1">1</option><option value="2">2</option></select>';
div.innerHTML = str;