<html> <head> <script> function test () { var testField = document.getElementById('t1'); var results = document.getElementById('result'); testSelectionRange(1, 0, 0, 0, 0, testField, results); testSelectionEnd(2, 17, 0, 17, testField, results); testSelectionStart(3, 1, 1, 17, testField, results); testSelectionRange(4, 10, 3, 3, 3, testField, results); testSelectionEnd(5, 2, 2, 2, testField, results); testSelectionRange(6, 5, 4, 4, 4, testField, results); testSelectionRange(7, -5, -4, 0, 0, testField, results); testSelectionRange(8, -5, 80, 0, 20, testField, results); testSelectionRange(9, 3, 12, 3, 12, testField, results); } function testSelectionRange (testNumber, start, end, expectedStart, expectedEnd, tf, res) { tf.focus(); tf.setSelectionRange(start, end); res.innerHTML = res.innerHTML + "<br>Test " + testNumber + ": setSelectionRange(" + start + ", " + end + ")"; if (tf.selectionStart == expectedStart && tf.selectionEnd == expectedEnd) res.innerHTML = res.innerHTML + "<br>Passed.<br>"; else res.innerHTML = res.innerHTML + "<br>Failed.<br>"; } function testSelectionStart (testNumber, start, expectedStart, expectedEnd, tf, res) { tf.selectionStart = start; res.innerHTML = res.innerHTML + "<br>Test " + testNumber + ": selectionStart = " + start; if (tf.selectionStart == expectedStart && tf.selectionEnd == expectedEnd) res.innerHTML = res.innerHTML + "<br>Passed.<br>"; else res.innerHTML = res.innerHTML + "<br>Failed.<br>"; } function testSelectionEnd (testNumber, end, expectedStart, expectedEnd, tf, res) { tf.selectionEnd = end; res.innerHTML = res.innerHTML + "<br>Test " + testNumber + ": selectionEnd = " + end; if (tf.selectionStart == expectedStart && tf.selectionEnd == expectedEnd) res.innerHTML = res.innerHTML + "<br>Passed.<br>"; else res.innerHTML = res.innerHTML + "<br>Failed.<br>"; } </script> </head> <body onload="test()"> This tests the selection methods on the new text field. <p> <input type="text" id="t1" style="-khtml-appearance:textfield" value="123456789 ABCDEFGHIJ"></input> <div id="result"></div> </p> </body> </html>