Javascript 在jQuery/AJAX中动态填充的select元素上选择选项
我有一个动态填充的选择框,用于显示关于单个选项的信息。我遇到的问题是,当我单击任何选项时,它似乎不会在浏览器中触发:selected事件 我不知道将来这些信息是什么,但是.val理论上不应该得到动态填充的选项的值吗?到目前为止,它似乎不起作用 原始HTML: 作为将来的参考和提醒,我不一定知道这些值。我想做的事情可能吗Javascript 在jQuery/AJAX中动态填充的select元素上选择选项,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一个动态填充的选择框,用于显示关于单个选项的信息。我遇到的问题是,当我单击任何选项时,它似乎不会在浏览器中触发:selected事件 我不知道将来这些信息是什么,但是.val理论上不应该得到动态填充的选项的值吗?到目前为止,它似乎不起作用 原始HTML: 作为将来的参考和提醒,我不一定知道这些值。我想做的事情可能吗 上述函数在$document.readyfunction{}回调的每个页面加载中调用一次。如果有必要的话,jQuery 1.11.1就是正在使用的版本。浏览器都是最新的。我正在使
上述函数在$document.readyfunction{}回调的每个页面加载中调用一次。如果有必要的话,jQuery 1.11.1就是正在使用的版本。浏览器都是最新的。我正在使用记事本++进行编辑。不确定其他哪些信息会有帮助。使用onclick事件,然后使用以下命令获取所选值
<select id="activeList" size="5" onclick='onclicklist()'>
</select>
<script>
function onclicklist() {
var selectedvalue = $("#activelist option:selected").val();
}
</script>
动态替换select元素的HTML肯定会导致问题。最好使用JavaScript本身,以便让浏览器正确处理它 首先,有些浏览器对用.html填充select节点的响应不好。。。。附加选项节点要安全得多 其次,为了响应用户对填充的select元素的选择,您需要附加一个“onchange”处理程序。可以在添加选项之前或之后制作附件
function popuList() {
var $select = $("#activeList").on('change', function() {
var val = this.value;
//do real kewl stuff with the value here
});
// Populates the SELECT element with options from the JSON file.
var url = "/calls/sessions.php";
$.getJSON(url, '', function(jdata, oSucc, jqXHR){
$.each(jdata,function(i, session) {
$.each(session, function(n, data) {
$('<option value="' + data.name + '">' + data.name + '</option>').appendTo($select);
});
});
});
}
“\n”需要什么?它唯一的用途是美化代码,以便在浏览代码时知道我在看什么。它添加了一个新行。这样我就不会迷路了。你在哪里用过。val或:select?你能不能也分享一下这个代码。你在示例中给出的选择元素上有不同的ID谢谢,那是一个打字错误。。。修复。我还没有尝试过这个,但是所选元素是否可以在函数外部访问到其他函数,或者我是否需要将信息放回数据库处理程序(例如getJSON)或get以便再次访问其他内容?我不确定您的确切意思,但会尝试回答。在函数内部用var声明的任何内容都是该函数和任何内部函数的局部内容。在$select的情况下,var$select=$activeList在代码中的任何其他位置都将引用相同的元素,$select.val将返回当前所选选项的值。如果在其他一些代码中,你需要知道所有会话值,理论上你可以从activeList中的选项中读取它们,但是你需要知道你在做什么,因为其他代码可能会在填充选择框之前运行。这比我模糊的问题lol更具体。很难不选择这个,起初,这似乎是一个很好的答案,但最终问题是,我需要的是关于操作顺序的知识,我还不知道。。。我仍然在克服程序思维与面向对象思维之间的差异。因此,虽然这在技术上解决了眼前的问题,事实上,我在Stack Overflow的代码Roamer-1888中的注释中相信了你,因为我的最终答案实际上非常相似,最终的问题是我思考问题的方式。事实上,这是一个艰难的决定。这实际上是我应该选择的方向,尽管当我实际尝试时,仍然无法检测何时选择了对象。。。e、 例如,否:javascript将识别为选定的选定属性。选定属性仅用于确定默认选定选项。改为使用select元素的value属性。我还没有足够的代表对此进行投票,但实际上正是这一点让我找到了我需要的答案。问题是,在动态生成的代码中,它实际上并不是:在任何时候都被选中。。。这就是全部问题所在。因此,虽然您的解决方案可以在预先填充的列表上工作,但实际上它现在在代码中不起作用。是的,我刚刚试过。那么它给了你什么,它是空的,第一项,还是什么?它给了我一个未定义的,好像我一开始什么都没有。
<select id="activeList" size="5">
<option value="00000000003">00000000003</option>
<option value="00000000002">00000000002</option>
<option value="00000000001">00000000001</option>
</select>
<select id="activeList" size="5" onclick='onclicklist()'>
</select>
<script>
function onclicklist() {
var selectedvalue = $("#activelist option:selected").val();
}
</script>
function popuList() {
var $select = $("#activeList").on('change', function() {
var val = this.value;
//do real kewl stuff with the value here
});
// Populates the SELECT element with options from the JSON file.
var url = "/calls/sessions.php";
$.getJSON(url, '', function(jdata, oSucc, jqXHR){
$.each(jdata,function(i, session) {
$.each(session, function(n, data) {
$('<option value="' + data.name + '">' + data.name + '</option>').appendTo($select);
});
});
});
}