javascript - 如何重置由 php 设置的选中值的复选框?

标签 javascript php checkbox

我有一个带有无数复选框的网络表单。如果表单填写不正确,则不会重置任何复选框(作为反挫败功能)。

问题是,如果之前已提交过表单,则重置按钮无法取消选中所有复选框。我该如何解决这个问题?

如果事先提交了表单,

document.getElementById("form").reset() 也不起作用。

示例代码如下:

<body>

<script>
function resetData() {
    document.getElementById("deleteContactFlag").checked=false;
    document.getElementById("userAdministrationFlag").checked=false;
}
</script>

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post" id="form">
    <input type="checkbox" name="deleteContactFlag" id="deleteContactFlag" <?php if (isset($_POST["deleteContactFlag"])) echo 'checked="checked"'; ?>/> Delete Contacts<br>
    <input name="userAdministrationFlag" type="checkbox" id="userAdministrationFlag" <?php if (isset($_POST["userAdministrationFlag"])) echo 'checked="checked"'; ?>/> User Administration<br><br>

    <input type="submit" name="submit" id="submit" value="Submit">
    <button type="button" onClick="resetData()">Reset</button>
</form>

</body>

最佳答案

表单重置不会清除表单中的所有值,而是将表单设置回其初始状态,即页面首次加载时的初始状态。 (在此初始状态下,一些复选框已被选中。)

尝试手动重置所有复选框:

var inputs=document.getElementsByTagName("input");
for (var i in inputs)
    if (inputs[i].type=="checkbox") inputs[i].checked=false;

或者如果您使用 jQuery:

$("input[type=checkbox]").each(function() { this.checked=false; });

关于javascript - 如何重置由 php 设置的选中值的复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24428996/

相关文章:

javascript - Laravel mix 和 jQuery 插件问题,$().plugin 不是函数

javascript - thymeleaf 部分未在 js 中解释

php - 防止PHP解析someFile.php.txt等非PHP文件

javascript - 检查是否选中所有其他复选框;工作但我想要更多

javascript - 复选框禁用启用反之亦然

javascript - 当我对此进行更改时,我的 Discord.js 机器人没有响应,我还是新人,但我看不出出了什么问题

javascript - 如果在 primefaces 数据表中添加新行,如何检测表单的变化

php - Laravel:对多个值进行多对多过滤

java - Android Studio HTTPS 和 SSL 证书

javascript - 仅选择一组中的一个复选框