从Javascript中的数据列表中读取值

从Javascript中的数据列表中读取值,javascript,jquery,html-datalist,Javascript,Jquery,Html Datalist,在表单输入中,我有一个数据列表,我用JSON加载它 <div class="form-group"> <div class="col-md-5"> <input type="text" id="product" list="products" class="form-control" name="product" /> <datalist id="products"></datalist> <

在表单输入中,我有一个数据列表,我用JSON加载它

<div class="form-group">
  <div class="col-md-5">
       <input type="text" id="product" list="products" class="form-control" name="product" />
       <datalist id="products"></datalist>
    </div>                      
</div>
现在我试着做以下几点。当用户从列表中选择某个内容时,我想得到该值。我尝试了两种方法来获得价值,但都没有成功。。我在上述代码后插入了以下内容:

$(function() {
    $('#product').on('change keyup', function() {

        var i = this.selectedIndex;
        var opt = $('option[value="'+$(this).val()+'"]');
        console.log("1 --> " + opt + " 2 -->" + i);

    });
});
当我尝试从数据列表中选择某事物时,我得到的是:

1 --> [object Object] 2 -->undefined
$function{ $“产品”。在“更改键控”上,函数{ console.log$this; 变量i=$this.selectedIndex; var opt=$选项[value='+$this.val+']; console.log1->+opt+2->+i; }; }; 1. 2. 试试这个

$("#products option[value='"+$("#product").val()+"']").text()
您应该使用输入事件而不是更改。当用户从数据列表中选择某个值时,它将使您能够触发

$“产品”。在“输入键控”上,函数{ var期权=$‘产品期权’; var inputValue=$'product'[0]。值; 对于变量i=0;i', 选项[i].值 ;
}; 没有数据列表的selectedIndex,因为它对浏览器是隐藏的。如果要获取文本字段的值,可以使用:

$function{ $'product'。在'blur'上,函数{ var i=该值; var opt=$选项[value='+$this.val+']; console.log1->+opt+2->+i; }; };
我仍然得到1->[object object]2->undefinedwhat out out of the code?console.log$this我得到对象{length:1,1 more…}。。我在questionNo I want change事件中添加了一个片段。我还尝试了“输入”,得到了与以前相同的输出。请更准确地解释您想要什么。我编辑了我的评论,并添加了对我有用的完整代码。分享不适合你的示例代码。好的,我看到了!Fyi使用的var I=该值;在change keyup中,它也起了作用。
$("#products option[value='"+$("#product").val()+"']").text()