首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重置由php设置的Check值的复选框?

如何重置由php设置的Check值的复选框?
EN

Stack Overflow用户
提问于 2014-06-26 19:13:58
回答 3查看 9K关注 0票数 2

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

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

如果表单是事先提交的,document.getElementById("form").reset()也不起作用。

示例代码如下:

代码语言:javascript
复制
<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>
EN

回答 3

Stack Overflow用户

发布于 2014-06-26 19:27:42

表单重置不会清除表单中的所有值,但会将表单设置回最初加载页面时的初始状态。(在此初始状态下,某些复选框已被选中。)

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

代码语言:javascript
复制
var inputs=document.getElementsByTagName("input");
for (var i in inputs)
    if (inputs[i].type=="checkbox") inputs[i].checked=false;

或者,如果您使用jQuery:

代码语言:javascript
复制
$("input[type=checkbox]").each(function() { this.checked=false; });
票数 4
EN

Stack Overflow用户

发布于 2014-06-26 19:24:26

尝试在html元素之外使用Php代码

HTML

代码语言:javascript
复制
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>"method="post" id="form">

    <input type="checkbox" name="deleteContactFlag" id="deleteContactFlag" /> Delete Contacts
    <input name="userAdministrationFlag" type="checkbox" id="userAdministrationFlag" /> User Administration

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

Stack Overflow用户

发布于 2014-06-26 19:30:03

如果您发现表单重置功能不可靠,可以使用JavaScript检查和取消检查checkbox输入。(我认为重置表单应该只是在页面加载时将其设置回初始状态,这就是为什么您可能会遇到这个问题?)下面是一个例子:

代码语言:javascript
复制
function checkAll(formname, checktoggle)
{
  var checkboxes = new Array(); 
  checkboxes = document[formname].getElementsByTagName('input');

  for (var i=0; i<checkboxes.length; i++)  {
    if (checkboxes[i].type == 'checkbox')   {
      checkboxes[i].checked = checktoggle;
    }
  }
}

<a onclick="javascript:checkAll('form', true);" href="javascript:void();">check all</a>
<a onclick="javascript:checkAll('form', false);" href="javascript:void();">uncheck all</a>

这里的代码(这里还有一个jQuery示例):http://www.webdevdoor.com/javascript-ajax/javascript-function-check-uncheck-checkboxes/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24428996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档