使用jQuery在datalist中获取选定的值

时间:2014-04-03 17:06:08

标签: jquery html5 html-datalist

非常简单直接。当我想要选择一个值并将其插入SQLite数据库时,我在表单上预先填充了一个带有值的HTML数据表。这是我的示例代码无效。请帮忙。 HTML5 datalist表单创建:

<input  name="TypeList" list="TypeList" placeholder="Select Type"/>
<datalist id="TypeList">
    <option value="State">
    <option value="Area">
    <option value="Town">
    <option value="Street">
    <option value="Number">
    <option value="Local Government">
    <option value="Ward">
    <option value="Country">
</datalist>

这是不起作用的示例jquery代码:

var relationshipTemp = $('#TypeList option:selected').text();

10 个答案:

答案 0 :(得分:16)

有一个选择器来选择输入元素。提及您希望移动值的事件。使用.val()获取值。

示例:

$("input[name=TypeList]").focusout(function(){
    alert($(this).val());
});

希望这是您正在寻找的jsFiddle

答案 1 :(得分:5)

:selected不适用于datalist选项,因为一位数据列表可以为多个输入提供建议。如果两个不同的输入包含列表中的两个不同的建议,那么它们将是选定的建议吗?

正如其他评论中所提到的,您可以像这样检查输入的值:

$("input[name='Typelist']").on('input', function(e){
    var selected = $(this).val();
});

但是,如果要确保该值实际上是数据列表中的一个选项,则必须进行额外检查,与数据列表一样,访问者仍可在输入中输入不同的值。 Datalist仅提供建议。

检查值是否在datalist中的解决方案:

$("input[name='Typelist']").on('input', function(e){
   var $input = $(this),
       val = $input.val();
       list = $input.attr('list'),
       match = $('#'+list + ' option').filter(function() {
           return ($(this).val() === val);
       });

    if(match.length > 0) {
        // value is in list
    } else {
        // value is not in list
    }
});

答案 2 :(得分:2)

我会使用'.on()':

HTML

<input type="text" name="display" id="display" value="" list="list-display" />
<datalist id="list-display">
 <option>Name</option>
 <option>Id</option>
</datalist>

Javascript

$("#display").on('input',function(e){
 alert($(this).val());
});

答案 3 :(得分:2)

试试这个。

$('#id_relative option[datalisted=datalisted]').val()

答案 4 :(得分:1)

尝试.val()代替:

var relationshipTemp = $('#TypeList option:selected').val();

答案 5 :(得分:0)

<input list="Model" id="ModelList" placeholder="Select Model"> 
<datalist id="Model">
<option value="A">
<option value="B">
<option value="C">
<option value="D">
</datalist>
<script>
var dataset= document.getElementById("ModelList").value;
alert(dataset);</script>

答案 6 :(得分:0)

您只需为输入提供一个ID,然后像这样使用输入的val():

HTML:

<input id="typeInput" name="TypeList" list="TypeList" placeholder="Select Type"/>

JS:

$('#typeInput').val();

答案 7 :(得分:0)

简单的方法是使用名称属性获取数据列表的名称,然后使用val()函数查看所选的值

$('[name="TypeList"]').val();

检查工作示例https://jsfiddle.net/ch9uwvod/8/

答案 8 :(得分:0)

var relationshipTemp = null;
$('input[name=TypeList]').change(function(){
    // YOU CAN PERFORM LOGIC HERE OR CAN SAVE THE VALUE IN ANY VARIABLE
    relationshipTemp = $(this).val();    
});

答案 9 :(得分:-2)

解决这个问题的简单方法就是从文本输入字段中获取值

姓名:

<input id="l" list="bloodgroup" name="blood_group" placeholder="Blood group">
                    <datalist id="bloodgroup">
                        <option value="A+"> 
                        <option value="B+"> 
                        <option value="AB+"> 
                        <option value="O+"> 
                        <option value="A-"> 
                        <option value="B-"> 
                        <option value="AB-"> 
                        <option value="O-">
                    </datalist>

<button type="button" onclick="myFunction()">Try it</button>



<script>
function myFunction() {
    console.log(document.getElementById("l").value);
}
</script>