【问题标题】:Hide a button until check box is checked, without ID隐藏按钮,直到复选框被选中,没有 ID
【发布时间】:2014-02-04 18:49:42
【问题描述】:

在单击复选框之前,我需要隐藏一个按钮,但是我正在进入其他人的代码,该代码使用了未在按钮标签中定义 ID 的标签库。这是我所拥有的:

按钮代码:

<html:button name="Next" value="BTN.NEXT" styleClass="button" localeCd="<%= localeCd %>" onClick='Submit("Next")'/>

复选框代码:

<input type="checkbox" name="fedCheck" onclick="checkFed(this, 'myNext')" value="y" />

Javascript 代码

function checkFed(ele, id) {
x = document.getElementById(id);
if (ele.checked == true) x.disabled = false;
else x.disabled = true;

}

我可以让它在单独的页面中工作,但它所在的页面不允许按钮具有 ID,因此它每次都会崩溃。有什么建议吗?

【问题讨论】:

  • 我可能遗漏了一些东西,但您的按钮似乎没有 id。
  • 嘿,你会想用“javascript”标签来标记这样的问题/问题以获得正确类型的帮助,而不是“java”。我还建议使用 jsfiddle.net 之类的第三方网站将您的 html、css 和 javascript 与服务器端代码隔离开来。通常在这样做的过程中,您可以简化问题并在更简单的环境中自己发现问题。如果没有,其他人解决起来会容易得多。

标签: javascript button checkbox getelementbyid


【解决方案1】:

会有更好的方法来执行此操作,例如监听点击事件等...但是,要简单地修改您的代码,请参见 jsFiddle(注意:假设这是唯一名为“Next”的元素):

function checkFed(ele, name) {
    x = document.getElementsByName(name)[0];
    x.disabled = !x.disabled
}

并将onclick="checkFed(this, 'myNext')" 更改为:

onclick="checkFed(this, 'Next')"

并将disabled="true" 添加到按钮,使其初始状态为禁用

...还请注意,这实际上并没有像标题要求的那样隐藏它,而是禁用它,就像问题的内容似乎在问的那样。

【讨论】:

  • 很好,现在他们想要页面顶部和底部的按钮。该代码适用于顶部按钮,但不适用于底部按钮。我假设我需要某种方法让脚本遍历所有元素,而不仅仅是顶部的元素。
【解决方案2】:

不要使用 document.getElementById 来查找按钮,而是使用 document.querySelector。

例如,如果页面上有一个按钮,其名称属性值为“Next”:

document.querySelector('button[name="Next"]')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    相关资源
    最近更新 更多