2017-07-04 88 views
1

如您所知,表單中的重置按鈕無法將複選框重置爲其初始狀態。我如何使用JavaScript或PHP或jQuery或...來實現這一目標?
這裏是我的代碼:將複選框重置爲初始狀態

<form method="POST"> 
<input type="text" name="name" id="name" value="default value" required > 
<input type="checkbox" name="group[]" id="checkbox1" value="0" checked> 
<input type="checkbox" name="group[]" id="checkbox2" value="1" > 
<button type="reset"> Reset </button> 
<button type="submit"> Submit </button> 
</form> 
+0

能省則inital值在Javascript中,然後在其餘的按鈕上單擊,將值更改爲初始值。 – Nicolas

+0

如果您不會專門提供這些屬性,那麼將重置複選框,如果您將默認值賦予表單中的任何字段,則不會重置。如果這可以提供幫助,如果您希望最初填寫這些值,答案會有所不同。請提供完整的信息,你真的想要做什麼.. –

+0

您的HTML上面的工作適合我。它將複選框重置爲初始狀態(即checkbox1被選中,checkbox2未被選中)。也許這是一個瀏覽器問題? – James

回答

0

遍歷所有的投入要素,並取消其檢查的人。

var allInputs = $(":input"); 

for(var i = 0; i < allInputs.length; i++) { 

    if($('input[type="checkbox"]:checked')) 
     $(this).prop('checked', false); 
} 

或者像詹姆斯指出,這可能在一個行完成這樣的:

$('input[type="checkbox"]').prop('checked', false); 
+0

或者只是'$('input [type =「checkbox」]').prop('checked',false);'? – James

+1

是的,可以做到這一點 –

-1

分配一個ID,你的表格,然後:

document.getElementById("your form id").reset() 
0

試試這個:

var resetForm = function(){ 
 
    $('#form')[0].reset(); 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<form method="POST" id="form"> 
 
<input type="text" name="name" id="name" value="default value" required > 
 
<input type="checkbox" name="group[]" id="checkbox1" value="0" checked> 
 
<input type="checkbox" name="group[]" id="checkbox2" value="1" > 
 
<button type="reset" onclick="resetForm()"> Reset </button> 
 
<button type="submit"> Submit </button> 
 
</form>

+0

從jQuery 1.6開始,修改'checked' attr會更長時間。你需要'.prop('checked',false)'。 – James

+0

1.6'removeAttr'後你的意思是不行嗎?順便說一句,我使用'3.2.1'最新的一個 –

+0

它將取消所有的複選框。我不需要。如果一個複選框最初被檢查? – Omid