<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> <html> <head> <title>required and basic valueMissing 2</title> <script src="../../fast/js/resources/js-test-pre.js"></script> </head> <body> <p id="description"></p> <div id="console"></div> <div id=parent> <input id="input" name="victim" value="something" required/> <textarea id="textarea" name="victim" required>something</textarea> <select id="select-with-placeholder" name="victim" required> <option value="" /> <option value="X" selected>X</option> </select> <select id="select-without-placeholder" name="victim" required> <option value="X" selected>X</option> <option value="" /> </select> <select id="select-with-fake-placeholder-size2" name="victim" size="2" required> <option value="" /> <option value="X" selected>X</option> </select> <select id="select-without-fake-placeholder-size2" name="victim" size="2" required> <option value="X" selected>X</option> <option value="" /> </select> <select id="select-with-fake-placeholder-multiple" name="victim" multiple required> <option value="" /> <option value="X" selected>X</option> </select> <select id="select-without-fake-placeholder-multiple" name="victim" multiple required> <option value="X" selected>X</option> <option value="" /> </select> <select id="select-with-fake-placeholder-size2-multiple" name="victim" multiple size="2" required> <option value="" /> <option value="X" selected>X</option> </select> <select id="select-without-fake-placeholder-size2-multiple" name="victim" multiple size="2" required> <option value="X" selected>X</option> <option value="" /> </select> <select id=select-selecting-by-key required> <option value="" selected/> <option>a</option> </select> <select id=select-selecting-by-key-2 required> <option value="" selected/> <option accesskey="1">a</option> </select> </div> <script language="JavaScript" type="text/javascript"> function valueMissingFor(id) { return document.getElementById(id).validity.valueMissing; } description("This test checks validity.valueMissing with some values or options with some values selected."); shouldBeFalse('valueMissingFor("input")'); shouldBeFalse('valueMissingFor("textarea")'); shouldBeFalse('valueMissingFor("select-with-placeholder")'); shouldBeFalse('valueMissingFor("select-without-placeholder")'); shouldBeFalse('valueMissingFor("select-with-fake-placeholder-size2")'); shouldBeFalse('valueMissingFor("select-without-fake-placeholder-size2")'); shouldBeFalse('valueMissingFor("select-with-fake-placeholder-multiple")'); shouldBeFalse('valueMissingFor("select-without-fake-placeholder-multiple")'); shouldBeFalse('valueMissingFor("select-with-fake-placeholder-size2-multiple")'); shouldBeFalse('valueMissingFor("select-without-fake-placeholder-size2-multiple")'); // Need to use eventSender instead of initKeyboardEvent() because we can't // make an event which returns a correct value for keyCode by initKeyboardEvent(). if (window.eventSender) { debug("Updating valueMissing state by a key input:") // Select by type-ahead. var select = document.getElementById("select-selecting-by-key"); shouldBeTrue('valueMissingFor("select-selecting-by-key")'); select.focus(); eventSender.keyDown("a"); shouldBe('select.value', '"a"'); shouldBeFalse('valueMissingFor("select-selecting-by-key")'); // Select by accesskey. select = document.getElementById("select-selecting-by-key-2"); shouldBeTrue('valueMissingFor("select-selecting-by-key-2")'); select.focus(); var modifiers; if (navigator.userAgent.search(/\bMac OS X\b/) != -1) modifiers = ['ctrlKey', 'altKey']; else modifiers = ['altKey']; eventSender.keyDown("1", modifiers); shouldBe('select.value', '"a"'); shouldBeFalse('valueMissingFor("select-selecting-by-key-2")'); } else { debug('There are tests using eventSender.'); } document.body.removeChild(document.getElementById('parent')); </script> <script src="../../fast/js/resources/js-test-post.js"></script> </body> </html>