blob: 3c826a9754f6fddcd0ace10525a645bbe7f26805 [file] [log] [blame]
<!DOCTYPE html>
<meta charset=utf-8>
<title>input type button</title>
<link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org">
<link rel=help href="https://html.spec.whatwg.org/multipage/#button-state-(type=button)">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<form id=f1>
<input type=button id=b1 name=b1>
</form>
<form>
<input id=i1 value="foo">
<input type=button id=b2 name=b2>
</form>
<form>
<input type=radio id=i2 checked name=b3>
<input type=button id=b3 name=b3>
</form>
<form>
<input type=checkbox id=i3>
<input type=button id=b4 name=b4>
</form>
<script>
var t = async_test("clicking on button should not submit a form"),
b1 = document.getElementById('b1'),
b2 = document.getElementById('b2'),
b3 = document.getElementById('b3'),
b4 = document.getElementById('b4'),
i1 = document.getElementById('i1'),
i2 = document.getElementById('i2'),
i3 = document.getElementById('i3');
test(function(){
assert_false(b1.willValidate);
}, "the element is barred from constraint validation");
document.getElementById('f1').onsubmit = t.step_func(function(e) {
e.preventDefault();
assert_unreached("form has been submitted");
});
t.step(function() {
b1.click();
});
t.done();
test(function(){
i1.value = "bar";
b2.click();
assert_equals(i1.value, "bar");
}, "clicking on button should not reset other form fields");
test(function(){
assert_true(i2.checked);
b3.click();
assert_true(i2.checked);
}, "clicking on button should not unchecked radio buttons");
test(function(){
assert_false(i3.indeterminate);
b4.click();
assert_false(i3.indeterminate);
}, "clicking on button should not change its indeterminate IDL attribute");
</script>