HTML 5 datalist with image - html

I google it but no luck.
How to add image on result ?
<form action="/action_page.php" method="get">
<input list="browsers" name="browser">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
<input type="submit">
</form>

You can't.
As per the specifications, the datalist element allows either phrasing content or zero or more elements.
The datalist element can be used in two ways. In the simplest case, the datalist element has just option element children.
In the more elaborate case, the datalist element can be given contents that are to be displayed for down-level clients that don't support datalist. In this case, the option elements are provided inside a select element inside the datalist element.
The phrasing content you are allowed to provide is there as a backup in the case where the browser doesn't support the datalist element.

Related

HTML Datalist shows extra options separated by horizontal line

I am passing 10 options to datalist which are displayed fine in dropdown.
But sometime I am getting couple of more options separated by horizontal line at the bottom of option list(Chrome might be cacheing or displaying some option repeated). I am not able to get why chrome is showing these extra options separated by horizontal line
I went through different articles available on internet related to datalist and I came to know that datalist accepts autocomplete attribute. It give me a hint that extra options(might be - Previous searches, suggestions) I am getting are might be due to autocomplete feature of datalist, So I tried setting it to "off".
Now I am not getting those extra option and horizontal line in option list anymore.
E.g. code snippet -
<input list="browsers" autocomplete="off">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
I also came across one more attribute which datalist accepts, autocorrect="off". But I do not needed this attribute to resolve above problem.
option.select-hr { border-bottom: 1px dotted #000; }
<select name="test">
<option val="a">A</option>
<option val="b" class="select-hr">B</option>
<option val="c">C</option>
<option val="d">D</option>
</select>
But generally speaking, the only method is to put an option in with dashes, and try to make it unselectable.
<select name="test">
<option val="a">A</option>
<option val="b">B</option>
<option disabled="disabled">----</option>
<option val="c">C</option>
<option val="d">D</option>
</select>

What is the purpose of an extra datalist tag inside input-list tag?

Consider the following html code
<!DOCTYPE html>
<html>
<body>
<form action="demo_form.asp" method="get">
<input list="browsers" name="browser">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
<input type="submit">
</form>
<p><strong>Note:</strong> The datalist tag is not supported in Internet Explorer 9 and earlier versions, or in Safari.</p>
</body>
</html>
There are a variety of input elements for different specific purposes. For having an optional data-list with the text we replace <input type="text"> with <input list="value">. Now when <input list> tag is written, it is obvious that we are having a data-list. Then why do we need to mention an extra <datalist> tag for encapsulating the option-values? Why haven't all the features of data-list tag been added to input-list tag?
I'm not sure whether I understand the question correctly, but I think the <datalist> as you say is needed because you can add parameters like id=' '. In that case you can later do things with that certain datalist using JavaScript. e.g. using getElementId. Let me know if I answered your question.

paper-input: Suggest values in typeahead

Is there an easy way to implement a typeahead using Polymer's <paper-input> element?
The HTML <datalist> tag seems to implement that for normal <input> tags and I could dynamically update the data list using templates.
However, this does nothing:
<paper-input
label="Topic"
list="dl">
</paper-input>
<datalist id="dl">
<option>a</option>
<option>aa</option>
<option>aaa</option>
<option>ab</option>
</datalist>
Besides the fact you misuse options,
<datalist id="dl">
<option value='a'></option>
<!-- WRONG: <option>a</option> -->
</datalist>
I would suggest you to take a look into paper-input code and use paper-input-decorator with plain input as they do for paper-input:
<paper-input-decorator id="decorator">
<input list="dl" is="core-input">
<datalist id="dl">
<option value='a'></option>
<option value='ab'></option>
<option value='ac'></option>
<option value='ffa'></option>
</datalist>
</paper-input-decorator>
Polymer/paper-input has been deprecated, the currently supported version is PolymerElements/paper-input.
To use a datalist with paper-input in Polymer 1.0+:
<paper-input-container>
<input list="choices" is="iron-input">
<datalist id="choices">
<option value='a'></option>
<option value='ab'></option>
<option value='ac'></option>
<option value='ffa'></option>
</datalist>
</paper-input-container>
Vaadin Combo Box https://vaadin.com/elements/-/element/vaadin-combo-box is a good apache-2 licensed option for a typeahead that fits in with the paper elements.
Checkout this element. It's an element has the typeahead function.
https://github.com/cheonhyangzhang/paper-typeahead-input
Here is the demo & doc page
http://cheonhyangzhang.github.io/paper-typeahead-input/components/paper-typeahead-input/

Css Auto complete for Select option

I am trying to achieve a auto complete function by Css For Select Option so Beginner of web i could't it find any sample example for this.could some provide any idea or solution
For example::
In a select box by mention of class name like
<select id="productline" class="Auto-select on">
<option value="Motorcycles">Motorcycles</option>
<option value="Planes">Planes</option>
<option value="Ships">Ships</option>
<option value="Trains">Trains</option>
</select>
Try this.
The <datalist> element specifies a list of pre-defined options for an <input> element.
The <datalist> element is used to provide an "autocomplete" feature on <input> elements. Users will see a drop-down list of pre-defined options as they input data.
Use the <input> element's list attribute to bind it together with a <datalist> element.
<input list="browsers">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
Fiddle Demo

JAWS does not announce aria-describedby on select box in IE

I am trying to use aria-describedby on select box, but JAWS does not announce the text associated using the aria-describedby attribute in IE. I have even added tabindex="-1" to the span tag which is being referenced.Below is the sample code I am using. Can somebody please provide me any information on this topic.
<form action="#" method="post">
<div>
<label for="State">State</label>
<select id="State" name="State" aria-describedby="spanId">
<option value="acct">Choose</option>
<option value="act">ACT</option>
<option value="nsw">NSW</option>
<option value="nt">NT</option>
<option value="qld">QLD</option>
<option value="sa">SA</option>
<option value="tas">TAS</option>
<option value="vic">VIC</option>
<option value="wa">WA</option>
</select>
<span id="spanId" tabindex="-1">This is the text</span>
</div>
</form>
You can use aria-label="spanId"
Make sure you don't use title and aria-labelfor the same HTML element because title gets suppressed.
Using IE11 and Jaws 17 I have observed this issue as well.
My take is that this is a bug.
Until it's addressed by Freedom Scientific, I'd recommend using aria-labelledby.
This means something slightly different semantically:
a label describes the essence of an object, while a description
provides more information that the user might need.
Source: Mozilla Developer Network
But it's probably the best substitute you have available.