【发布时间】:2021-07-01 22:17:44
【问题描述】:
我有一个包含两个单选按钮组的表单。在每个组中选择选项时,它们会保持选中状态并更改颜色以显示它们已被选中。但是,当我尝试使用 清除过滤器按钮 重置表单时,没有任何反应。
我希望表单在第一次加载时出现在用户面前(没有选择,没有颜色变化 - 只是清除了。),有什么想法吗?
我正在使用 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>
这些是我目前尝试过的方法:
方法一: 在关闭表单标记之前为表单提供标准 html 重置按钮。
方法二: 在结束表单标记之前添加了这一行:
<input type="button" onclick="myFunction()" value="Reset form">
在结束表单标记之后添加此脚本:
<script>
function myFunction() {
document.getElementById("myForm").reset();
}
</script>
方法三:
在 body 标签内添加
<body onload="document.refine.reset();"> 并将表单命名为 refine。
方法四: 将输入字段设置为关闭自动完成
【问题讨论】:
标签: javascript php html css