Very simple and straight forward. I pre-populated a HTML datalist with values, on the form when I want select a value and insert it into SQLite database. This is my example code which is not working. Please help out. HTML5 datalist form creation:
<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>
this is the sample jquery code that did not work:
var relationshipTemp = $('#TypeList option:selected').text();
:selected
does not work on datalist
options, as one datalist can provide suggestions for multiple inputs. If two different inputs contain two different suggestions from the list, which would be the selected one?
As mentioned in other comments, you can check the value of the input on change like so:
$("input[name='Typelist']").on('input', function(e){
var selected = $(this).val();
});
However, if you want to make sure that the value is actually one of the options from the datalist you'll have to do an extra check, as with a datalist visitors can still input different values in the input. Datalist merely offers suggestions.
A solution to check if the value is in the 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
}
});
Have a selector to select the input element. Mention the event after which you want the values to be moved. Get the value by using .val().
Example:
$("input[name=TypeList]").focusout(function(){
alert($(this).val());
});
Hope this is what you are looking for jsFiddle
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With