Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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从下拉列表中获取所选值的id_Javascript_Jquery - Fatal编程技术网

Javascript Jquery从下拉列表中获取所选值的id

Javascript Jquery从下拉列表中获取所选值的id,javascript,jquery,Javascript,Jquery,我有一个下拉列表,它从db中获取值,如下所示 $.get('/getJobs', function (jobs) { seljobs = jobs; var i = 0; jobs.forEach(function (n) { alert("job id----"+n.id)// 32,67,45 alert("job names----"+

我有一个下拉列表,它从db中获取值,如下所示

$.get('/getJobs', function (jobs) {
        seljobs = jobs;
        var i = 0;
        jobs.forEach(function (n) {
                           alert("job id----"+n.id)// 32,67,45
                           alert("job names----"+n.names)//test1,test2,test3

            html += '<option value="' + i + '">' + n.names + '</option>';
            i++;
        });
        $('#jobSel').html(html);
    });

尝试更改事件并选择选择器

$('#jobSel').change(function(){
    var optId = $(this).find('option:selected').attr('id')
})
试试这个

关于变革事件

$("#jodSel").on('change',function(){
    var getValue=$(this).val();
    alert(getValue);
  });
注意:在
dropdownlist
中,如果您想从数据库中设置id、文本关系,则在选项标记中将id设置为值,而不是通过在选项中添加额外的
id
属性。虽然我在回答中都这样做了,但我更喜欢示例1

HTML标记

Example 1:
    <select id="example1">
        <option value="1">one</option>
        <option value="2">two</option>
        <option value="3">three</option>
        <option value="4">four</option>
    </select>
Example 2 :
    <select id="example2">
        <option id="1">one</option>
        <option id="2">two</option>
        <option id="3">three</option>
        <option id="4">four</option>
    </select>

如果您试图获取id,请更新您的代码,如

  html += '<option id = "' + n.id + "' value="' + i + '">' + n.names + '</option>';
检索值

$('option:selected').val()
在Javascript中

var e = document.getElementById("jobSel");
var job = e.options[e.selectedIndex].value;

首先在选项中设置自定义属性,例如
nameid
(您可以设置HTML元素的非标准化属性,这是允许的):

例如:

<select id="jobSel" class="longcombo" onchange="GetNameId">
    <option nameid="32" value="1">test1</option>
    <option nameid="67" value="1">test2</option>
    <option nameid="45" value="1">test3</option>    
    </select>    

看起来您正在尝试检索所选选项的id或值时,已在中介绍了这一点。因为您没有在html代码中设置id。你只是在提醒id值。他想要的是id,而不是值。如果我没弄错,op说他把条目设为test1、test2、test3,把值设为32、33、34,所以他想获取与test1、test2关联的id…为了编辑,他访问了frm我的手机,所以cnt做了正确的格式化。wut的Btw id??下拉列表或列表项的名称。val()将给出listitem selected值,即op为各个项目test1-32、test2-33等绑定的id。对于我来说,.val()在完全动态生成的内容中是好的。($(“#formname select[name=myselect]”).val();)任何其他版本(:select,find…)只需给我“undefined”。因此,感谢您提出了一个简单的“.val()”:)@huncyrus:您可能会得到
未定义的
,因为您的选项项中没有id,而且即使在我的答案中也写了“是”,我更喜欢示例1.OP查找id,而不是值。
$('option:selected').val()
var e = document.getElementById("jobSel");
var job = e.options[e.selectedIndex].value;
'<option nameid= "' + n.id + "' value="' + i + '">' + n.names + '</option>'
$('option:selected').attr("nameid")
<select id="jobSel" class="longcombo" onchange="GetNameId">
    <option nameid="32" value="1">test1</option>
    <option nameid="67" value="1">test2</option>
    <option nameid="45" value="1">test3</option>    
    </select>    
function GetNameId(){
   alert($('#jobSel option:selected').attr("nameid"));
}