清除已提交表单的单选按钮
Clear radio buttons of a submitted form
我有一个包含两个单选按钮组的表单。当在每组中选择选项时,它们将保持选中状态,并更改颜色以显示它们已被选中。但是,当我尝试使用清除过滤器按钮重置表单时,不会发生任何事情。
我希望表单在用户面前显示为第一次加载时的样子(没有选择,没有颜色变化,只是清除了。),有什么想法吗?
我使用onclick:"javascript:submit()"而不是提交按钮,也许这会导致问题?
代码:
<form action="" method="post">
<p>Date:</p>
<input type="radio" name="dateorder" onclick="javascript:submit()" value="dateasc" autocomplete="off" <?php if (isset($_POST['dateorder']) && $_POST['dateorder'] == 'dateasc') echo ' checked="checked"';?> /> <label for="dateasc">Newest › Oldest</label>
<br>
<input type="radio" name="dateorder" onclick="javascript:submit()" value="datedesc" autocomplete="off" <?php if (isset($_POST['dateorder']) && $_POST['dateorder'] == 'datedesc') echo ' checked="checked"';?> /> <label for="datedesc">Oldest › Newest</label>
<hr><br>
<p>Title:</p>
<input type="radio" name="title" onclick="javascript:submit()" value="Mr" <?php if (isset($_POST['title']) && $_POST['title'] == 'Mr') echo ' checked="checked"';?> /><label for="Mr">Mr</label>
<br>
<input type="radio" name="title" onclick="javascript:submit()" value="Mrs" <?php if (isset($_POST['title']) && $_POST['title'] == 'Mrs') echo ' checked="checked"';?> /><label for="Mrs">Mrs</label>
<br>
<input type="radio" name="title" onclick="javascript:submit()" value="Miss" <?php if (isset($_POST['title']) && $_POST['title'] == 'Miss') echo ' checked="checked"';?> /><label for="Miss">Miss</label><br><br>
<p class="clear">Clear Filters<p>
</form>
这些是我迄今为止尝试过的方法:
方法1:在关闭表单标记之前,为表单提供标准的html重置按钮。
方法2:在关闭表单标签前添加了这一行:
<input type="button" onclick="myFunction()" value="Reset form">
在关闭表单标签后添加了此脚本:
<script>
function myFunction() {
document.getElementById("myForm").reset();
}
</script>
方法3:在添加的正文标记中<body onload="document.refine.reset();">
,并将该形式命名为refine。
方法4:将输入字段设置为自动完成关闭
通过使用jQuery-pro(),您可以轻松地选中或取消选中单选按钮。
$('Radio-button').prop('checked', false);
通过使用JavaScript,你必须像这样做
document.getElementById("Radio-button").checked=false
您将表单重置为初始状态的尝试实际上是有效的,但问题是,因为您每次单击input
都会提交表单,因此页面和表单都会被重新加载,而上次单击的input
现在的初始状态为checked
。因此,您需要做的是循环遍历所有checked
输入并"取消选中"它们。下面是一个三分之一的例子:
var inputs=document.querySelectorAll("input[type=radio]:checked"),
x=inputs.length;
document.querySelector("button[type=reset]").addEventListener("click",function(event){
while(x--)inputs[x].checked=0;
event.preventDefault();
},0);
<form>
<input id="option1a" name="option1" type="radio" value="a"><label for="option1a">Option 1A</label>
<input checked id="option1b" name="option1" type="radio" value="b"><label for="option1b">Option 1B</label>
<input id="option1c" name="option1" type="radio" value="c"><label for="option1c">Option 1C</label>
<hr>
<input id="option2a" name="option2" type="radio" value="a"><label for="option2a">Option 2A</label>
<input checked id="option2b" name="option2" type="radio" value="b"><label for="option2b">Option 2B</label>
<input id="option2c" name="option2" type="radio" value="c"><label for="option2c">Option 2C</label>
<hr>
<button type="reset">Clear</button>
</form>
您可以使用
<form action="" class="form" method="post">
在javascript上,您应该使用
$(document).ready(function(){
$(".form input[type=radio]").each(function () {
$(this).prop('checked', false);
});
});
查看jsfiddle
相关文章:
- 使用按钮和单选按钮提交表单,但始终使用相同的值
- (extjs)获取表单中单选按钮的选定值.不返回该值
- 如果选择单选按钮,则显示表单
- Rails-带有单选按钮的表单,带有启用/禁用附加元素的javascript操作
- 基于单选按钮和复选框的数据表排序
- 单选按钮(如果单击)
- 如何使用 foreach 循环在表中重复单选按钮
- 贝宝表单问题的单选按钮选择
- 通过单选按钮检查提交表单
- 我的单选按钮没有从foreach循环中获得值,表单验证返回'必填字段'即使已检查
- 单击单选按钮,添加/删除表单元素的类
- 单选按钮表单代码和下拉菜单代码
- 在单选按钮表单选项上附加链接
- 删除内容占位符中的单选按钮列表单选按钮
- 在页面加载期间触发选中单选按钮的单击事件
- HTML Javascript输入字段是在单选按钮选中/单击时创建的
- 如何禁用单选按钮 1 单击后
- jquery动态选择单选按钮(表单重置问题)
- Javascript启用禁用单选按钮,单击,一次只选择一个
- HTML/Javascript单选按钮表单,重定向到不同的链接