2017-07-04 133 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