2016-02-01 55 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的)