Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery/AJAX中动态填充的select元素上选择选项_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript 在jQuery/AJAX中动态填充的select元素上选择选项

Javascript 在jQuery/AJAX中动态填充的select元素上选择选项,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一个动态填充的选择框,用于显示关于单个选项的信息。我遇到的问题是,当我单击任何选项时,它似乎不会在浏览器中触发:selected事件 我不知道将来这些信息是什么,但是.val理论上不应该得到动态填充的选项的值吗?到目前为止,它似乎不起作用 原始HTML: 作为将来的参考和提醒,我不一定知道这些值。我想做的事情可能吗 上述函数在$document.readyfunction{}回调的每个页面加载中调用一次。如果有必要的话,jQuery 1.11.1就是正在使用的版本。浏览器都是最新的。我正在使

我有一个动态填充的选择框,用于显示关于单个选项的信息。我遇到的问题是,当我单击任何选项时,它似乎不会在浏览器中触发:selected事件

我不知道将来这些信息是什么,但是.val理论上不应该得到动态填充的选项的值吗?到目前为止,它似乎不起作用

原始HTML:

作为将来的参考和提醒,我不一定知道这些值。我想做的事情可能吗


上述函数在$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);
            });
        });
    });
}