HTML5 workshop, forms
Upcoming SlideShare
Loading in...5

HTML5 workshop, forms



Workshop given at Jfokus 2012

Workshop given at Jfokus 2012



Total Views
Views on SlideShare
Embed Views



2 Embeds 2 1
http://pmomale-ld1 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

HTML5 workshop, forms HTML5 workshop, forms Presentation Transcript

  • HTML5 Forms - KISS time
  • Forms
  • Thou shalt make things simple
  • Types
  • New form types<input type="color"> <input type="range"><input type="date"> <input type="search" results="5"<input type="datetime"> autosave="saved-searches"><input type="datetime-local"> <input type="tel"><input type="email"> <input type="time"><input type="month"> <input type="url"><input type="number"> <input type="week">
  • Attributes
  • New form attributes<input type="text" autocomplete="off"><input type="text" autofocus><input type="submit" formaction="" value="Save"><input type="submit" formenctype="application/x-www-form-urlencoded" value="Save with enctype"><input type="submit" formmethod="POST" value="Send as POST"><input type="submit" formnovalidate value="Dont validate"><input type="submit" formtarget="_blank" value="Post to new tab/window">
  • <input type="text" list="data-list"><input type="range" max="95"><input type="range" min="2"><input type="file" multiple><input type="text" readonly><input type="text" required><input type="text" pattern="[A-Z]*"><input type="text" placeholder="E.g. Robocop"><input type="text" spellcheck="true"><input type="number" step="5">
  • <input type="text" mozactionhint="Next">
  • Elements
  • New form elements<input type="text" list="data-list"><datalist id="data-list"> <option value="Hugo Reyes"> <option value="Jack Shephard"> <option value="James Sawyer Ford"> <option value="John Locke"> <option value="Sayid Jarrah"></datalist>
  • <keygen></keygen><meter min="0" max="10" value="7"></meter><input type="range" id="range"><output for="range" id="output"></output><progress max="100" value="70">70%</progress>
  • <input type="range" id="da-range"><output id="da-range-output"></output><script> (function () { var range = document.getElementById("da-range"), output = document.getElementById("da-range-output"); range.addEventListener("input", function () { output.value = this.value; }, false); })();</script>
  • Validation
  • <input type="text" required>
  • Only spaces are regarded as input :-(
  • <input type="text" requiredstyle="visibility: hidden">
  • No dialog, wont submit formDialog at elementNo dialog, wont submit formDialog at top left of screen (notbrowser)
  • <input type="email" required>
  • No support for internationalcharacters, i.e.rö wont work
  • <input type="text" pattern="d{2}-d{5}">
  • Empty fields are seen as valid
  • <input type="text" title="So you triedto skip me?" required>
  • <input type="text" pattern="d{2}-d{5}"x-moz-errormessage="PLEASE, just do itright!">
  • elm.setCustomValidity("No, thats wrong!");
  • Remove custom validation messageby setting it to an empty string...
  • elm.setCustomValidity("");
  • Using setCustomValidity totallykills the checkValidity method
  • (function () { var oninvalidTest = document.getElementById("oninvalid-test"); oninvalidTest.addEventListener("input", function () { this.setCustomValidity(""); }, false); oninvalidTest.addEventListener("invalid", function () { this.setCustomValidity("No, thats wrong!"); }, false);})();
  • Styling
  • input:required { border: 1px solid #00f;}
  • input:valid { border: 1px solid #0f0;}input:invalid { border: 1px solid #f00;}input:out-of-range { border: 1px solid #f00;}
  • input:focus:invalid { border: 1px solid #f00;}
  • input:-moz-ui-valid { border: 1px solid #0f0;}input:-moz-ui-invalid { border: 1px solid #f00;}
  • input:-moz-placeholder { color: #f00; background: yellow;}input::-webkit-input-placeholder { color: #f00; background: yellow;}
  • Works in Safari, but only with thetext color, not the background
  • input::-webkit-validation-bubble-message { color: #f00; background: #000; border: 10px solid #f00; -webkit-box-shadow: 0 0 0 0;}input::-webkit-validation-bubble-arrow { background: #ff3456; border-color: orange; -webkit-box-shadow: 0 0 0 0;}
  • html5/inputs.html html5/inputs_mobile.html
  • Robert Twitter: