105 lines
4.1 KiB
HTML
105 lines
4.1 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html>
|
|
<head>
|
|
<title>required and basic valueMissing 2</title>
|
|
<script src="../../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="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|