blob: 9a9799542650347cd26ce07b740af99b29683dfc [file] [log] [blame]
<!DOCTYPE html>
<meta charset=utf-8>
<title>input type reset</title>
<link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org">
<link rel=help href="https://html.spec.whatwg.org/multipage/#reset-button-state-(type=reset)">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<form>
<input type=text id=input1 value="foobar">
<input type=text id=input2>
<input type=reset id=r1>
</form>
<input type=text id=input3 value="barfoo">
<table>
<form>
<tr>
<td>
<input type=text id=input4 value="foobar">
<input type=reset id=r2>
</td>
</tr>
</form>
</table>
<div>
<form>
<input type=text id=input5 value="foobar">
</div>
<input type=reset id=r3>
</form>
<div>
<form>
<input type=reset id=r4>
</div>
<input type=text id=input6 value="foobar">
</form>
<form id=form5>
<input type=reset id=r5>
</form>
<input form=form5 type=text id=input7 value="foobar">
<form id=form6>
<input type=text id=input8 value="foobar">
</form>
<input type=reset form=form6 id=r6>
<script>
var input1 = document.getElementById('input1'),
input2 = document.getElementById('input2'),
input3 = document.getElementById('input3'),
input7 = document.getElementById('input7'),
input8 = document.getElementById('input8'),
r1 = document.getElementById('r1');
test(function(){
assert_equals(input1.value, "foobar");
assert_equals(input2.value, "");
assert_equals(input3.value, "barfoo");
input1.value = "foobar1";
input2.value = "notempty";
input3.value = "barfoo1";
assert_equals(input1.value, "foobar1");
assert_equals(input2.value, "notempty");
assert_equals(input3.value, "barfoo1");
r1.click();
assert_equals(input1.value, "foobar");
assert_equals(input2.value, "");
assert_equals(input3.value, "barfoo1");
}, "reset button only resets the form owner");
test(function(){
assert_false(r1.willValidate);
}, "the element is barred from constraint validation");
test(function(){
assert_equals(input1.value, "foobar");
assert_equals(input2.value, "");
assert_equals(input3.value, "barfoo1");
r1.disabled = true;
r1.click();
assert_equals(input1.value, "foobar");
assert_equals(input2.value, "");
assert_equals(input3.value, "barfoo1");
}, "clicking on a disabled reset does nothing");
function testReset(inputId, buttonId) {
var inp = document.getElementById(inputId);
assert_equals(inp.value, "foobar");
inp.value = "barfoo";
assert_equals(inp.value, "barfoo");
document.getElementById(buttonId).click();
assert_equals(inp.value, "foobar");
}
test(function(){
testReset("input4", "r2");
testReset("input5", "r3");
testReset("input6", "r4");
}, "reset button resets controls associated with their form using the form element pointer");
test(function(){
testReset("input7", "r5");
}, "reset button resets controls associated with a form using the form attribute");
test(function(){
testReset("input8", "r6");
}, "reset button associated with a form using the form attribute resets all the form's controls");
</script>