<!DOCTYPE html> <meta charset=utf-8> <title>text field selection</title> <link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org"> <link rel=help href="https://html.spec.whatwg.org/multipage/#textFieldSelection"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <div id="log"></div> <script> var types = ["hidden", "email", "datetime-local", "date", "month", "week", "time", "number", "range", "color", "checkbox", "radio", "file", "submit", "image", "reset", "button"]; //types for which the API doesn't apply var types2 = ["text", "search", "tel", "url", "password"]; //types for which the API applies types.forEach(function(type){ test(function(){ var el = document.createElement("input"); el.type = type; assert_throws("InvalidStateError", function(){ el.selectionStart; }); assert_throws("InvalidStateError", function(){ el.selectionEnd; }); assert_throws("InvalidStateError", function(){ el.selectionDirection; }); assert_throws("InvalidStateError", function(){ el.setRangeText("foobar"); }); assert_throws("InvalidStateError", function(){ el.setSelectionRange(0, 1); }); }, "text field selection for the input " + type); }); types2.forEach(function(type) { test(function() { var el = document.createElement("input"); el.type = type; assert_equals(el.selectionStart, 0); assert_equals(el.selectionEnd, 0); el.selectionStart = 1; el.selectionEnd = 1; el.selectionDirection = "forward"; el.setRangeText("foobar"); el.setSelectionRange(0, 1); }, "text field selection for the input " + type); }); </script>