2016-02-01 36 views

回答

2

除了从required属性M. Kejji points out,这是做到这一点的正确方式,有一个CSS的方式,以及:

这是可能的限制内做到这一点的客户端,排序的,但它很丑。它并没有真正阻止表单提交,它只是阻止显示提交按钮。

基本上,你可以使用CSS :checked伪类(比方说)相邻的兄弟组合子隐藏submit按钮,如果它不检查:

.disable-submit + input[type=submit] { 
 
    display: none; 
 
} 
 
.disable-submit:checked + input[type=submit] { 
 
    display: inline; 
 
}
<p>Tick and untick the box</p> 
 
<form> 
 
    <input type="checkbox" class="disable-submit"> 
 
    <input type="submit" value="Send"> 
 
</form>

我不是建议它,只是说这是可能的。


无论如何,通常警告:即使你是使用JavaScript,一切的客户端可以被绕过,并且并不意味着你不需要服务器端验证。

+0

谢谢@ T.J Crowder :) – CodeWithCoffee

1

是,

HTML5具有输入字段required属性:

<input type="checkbox" name="agree" required /> By clicking this, blablabla 

如果用户试图提交表单而不检查中,他们将被封锁,并有通过抛出一个明确的信息浏览器。

+0

好点的苹果Safari浏览器的支持,并非常正确的方式去做。可悲的是[IE9不支持](http://caniuse.com/#feat=form-validation),更重要的是即使当前的Safari显然不会在防止提交时给用户反馈! –

0

上面的答案是正确的,但是,提供的代码必须在表单的上下文中。当点击表单的提交元素时,网页会发生错误。

Example Here
注意的input元素的required属性不(根据W3Schools的)