number.html (3271B)
1 <!DOCTYPE html> 2 <meta charset=utf-8> 3 <title>Form input type=number</title> 4 <link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org"> 5 <link rel=help href="https://html.spec.whatwg.org/multipage/#number-state-(type=number)"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <div id="log"></div> 9 <script> 10 var numbers = [ 11 {value: "", expected: "", testname: "empty value"}, 12 {value: "11", expected: "11", testname: "value = 11"}, 13 {value: "11.12", expected: "11.12", testname: "value = 11.12"}, 14 {value: "-11111", expected: "-11111", testname: "value = -11111"}, 15 {value: "-11111.123", expected: "-11111.123", testname: "value = -11111.123"}, 16 {value: "1e2", expected: "1e2", testname: "value = 1e2"}, 17 {value: "1E2", expected: "1E2", testname: "value = 1E2"}, 18 {value: "1e+2", expected: "1e+2", testname: "value = 1e+2"}, 19 {value: "1e-2", expected: "1e-2", testname: "value = 1e-2"}, 20 {value: "1d+2", expected: "", testname: "value is not a valid floating-point number: 1d+2"}, 21 {value: "foobar", expected: "", testname: "value not a valid floating-point number: random string"}, 22 {value: "11", attributes: { min: "10" }, expected: "11", testname: "Value >= min attribute"}, 23 {value: "9", attributes: { min: "10" }, expected: "9", testname: "Value < min attribute"}, 24 {value: "19", attributes: { max: "20" }, expected: "19", testname: "Value <= max attribute"}, 25 {value: "21", attributes: { max: "20" }, expected: "21", testname: "Value > max attribute"}, 26 {value: ".1", expected: ".1", testname: "value with a leading '.'"}, 27 {value: "1.", expected: "", testname: "value ending with '.'"}, 28 {value: "-0", expected: "-0", testname: "value = -0"}, 29 {value: "Infinity", expected: "", testname: " value = Infinity"}, 30 {value: "-Infinity", expected: "", testname: "value = -Infinity"}, 31 {value: "NaN", expected: "", testname: "value = NaN"}, 32 {value: "9007199254740993", expected: "9007199254740993", testname: "value = 2^53+1"}, 33 {value: "2e308", expected: "", testname: "value >= Number.MAX_VALUE"}, 34 {value: "1e", expected: "", testname: "value = 1e"}, 35 {value: "+1", expected: "", testname: "value = +1"}, 36 {value: "+", expected: "", testname: "value = '+'"}, 37 {value: "-", expected: "", testname: "value = '-'"}, 38 {value: "\t1", expected: "", testname: "value with a leading tab"}, 39 {value: "\n1", expected: "", testname: "value with a leading newline"}, 40 {value: "\f1", expected: "", testname: "value with a leading form feed"}, 41 {value: "\r1", expected: "", testname: "value with a leading carriage return"}, 42 {value: " 1", expected: "", testname: "value with a leading space"}, 43 {value: "1trailing junk", expected: "", testname: "value = 1trailing junk"}, 44 {value: "123", expected: "", testname: "full-width digits"}, 45 ]; 46 for (var i = 0; i < numbers.length; i++) { 47 var w = numbers[i]; 48 test(function() { 49 var input = document.createElement("input"); 50 input.type = "number"; 51 input.value = w.value; 52 for(var attr in w.attributes) { 53 input[attr] = w.attributes[attr]; 54 } 55 assert_equals(input.value, w.expected); 56 }, w.testname); 57 } 58 </script>