【问题标题】:Javascript -Check all Checkboxes form problemJavascript - 检查所有复选框表单问题
【发布时间】:2011-02-16 11:58:49
【问题描述】:

我有一些 JavaScript 代码,它们最初选中/取消选中了多个复选框,这很棒。但是知道我必须将复选框移动到另一个表单...

我在任何地方都找不到其他形式的复选框的教程。

我该怎么做?

(为什么这个 javascript 不适用于其他表单?)

function Check(frm)
{
    for (i = 0; i < frm.length; i++){
        frm[i].checked = (document.form3.CheckAll.value == "Check All") ? 'checked' : '';
    }
    document.form3.CheckAll.value = (document.form3.CheckAll.value == "Check All") ? "Uncheck All" : 'Check All';
}

我的另一种形式叫做:

<form name="myform" method="post" action="">
<input type="checkbox" name="check_list[]" value="<? echo $row['Report ID'] ?>"/>
</form>

并且 javascript 代码是从这个表单/按钮运行的:

<form name="form3" method="post" action="">
<input style="font-family: sans-serif; font-weight:bold; font-size:12px; border: 1px #000000 solid;" type="button" id="CheckAll" name="CheckAll" value="Check All" onClick="Check(document.myform)">
<input style="font-family: sans-serif; font-weight:bold; font-size:12px; border: 1px #000000 solid;" type="submit" id="DeleteCheck" name="DeleteCheck" value="Delete Checked"></center>
</form>

为什么它不起作用?

编辑:我意识到表单:'myform' 被循环了几次,(因为上面的代码在没有循环时有效)那么如果 myform 循环了,我怎样才能使它工作?

非常感谢,

【问题讨论】:

  • checked 属性应该是truefalse——不要依赖于带有空字符串的字符串的类型强制,这很难看。

标签: javascript forms checkbox


【解决方案1】:

我建议去掉 CheckAll 成员,而是将新的复选框值基于当前值,例如:

function Check(frm)
{
    for (i = 0; i < frm.length; i++){
        frm[i].checked = (frm[i].checked == '') ? 'checked' : '';
    }
}

此代码尚未经过测试,因为我在我的 iPhone 上,但您应该了解它的本质。

【讨论】:

  • 错误。所以 CheckAll 按钮应该将所有当前选中的按钮设置为未选中,反之亦然?呃。全部切换多于检查全部。
  • 当我读到“我有一些 JavaScript 代码最初选中/取消选中了多个复选框,这很棒。”我知道这就是他要找的东西,一个切换功能……但我可能错了?
【解决方案2】:

因为另一个表单没有CheckAll,而正是您正在寻找的那个表单。

【讨论】:

  • 明确获取表单。将表单作为另一个参数传递。使其成为可选参数并未指定切换回当前形式。每个表格都有一个 CheckAll。有很多方法。
  • 不幸的是,我不知道这些方法中的任何一种,这就是我问这个问题的原因。 :(
  • 我在句子中列出了三个半的其他方法,然后是我说有很多的方法。选择其中之一。
  • 好吧,我已经将 'frm.CheckAll.value' 更改为 'document.form2.CheckAll.value' 所以现在按钮更改了文本(就像它在工作时使用的一样)但是复选框仍然可以不变:(
  • 认为我知道问题所在:我在“myform”周围有一个循环,所以因为有两个,所以它不起作用:(你知道如何解决这个问题吗?:)
猜你喜欢
  • 2011-11-03
  • 2011-08-23
  • 2010-12-05
  • 1970-01-01
  • 2013-05-08
  • 2018-03-02
  • 2015-12-20
  • 2020-03-29
相关资源
最近更新 更多