【问题标题】:Disable Submit button for demo禁用演示的提交按钮
【发布时间】:2013-03-08 06:09:55
【问题描述】:

我正在尝试为演示帐户禁用选项卡式菜单页面的提交按钮。不幸的是,3 个菜单选项卡中的每一个都具有相同的按钮 ID -“Mod0EditRecord”。我不能重命名按钮 ID,也不能改用 class,因为它是由在线数据库呈现的。

<input type="submit" value="Update" name="Mod0EditRecord" id="Mod0EditRecord">
<input type="submit" value="Update" name="Mod0EditRecord" id="Mod0EditRecord">
<input type="submit" value="Update" name="Mod0EditRecord" id="Mod0EditRecord">

我可以成功地将第一个按钮的属性设置为禁用,如下所示

if (login == 'demo.account')
{
document.getElementById('Mod0EditRecord').setAttribute("disabled","disabled");
document.write("<br><p style=\"text-align:left; padding-left:100px; font-size:10px;\">** Update button is disabled for the demo **</p>");
} 
else
{
document.getElementById('Mod0EditRecord').removeAttribute("disabled");
}

我正在寻找有关如何为其他两个设置属性的指导。

提前致谢

【问题讨论】:

    标签: javascript html disabled-input


    【解决方案1】:

    您可以使用像 jQuery 这样的 javascript dom 操作库来遍历 HTML 节点并根据需要添加类/更改 id。

    如果你必须特别坚持这些属性,那么你可以在 jQuery 中做这样的事情:

    $('input[name="Mod0EditRecord"]').eq(0).attr('disabled','disabled') 
    //this is the first input, change .eq(index) to the value you need
    

    【讨论】:

      【解决方案2】:

      document.getElementById 的返回值应该是一个数组。你可以遍历它们。

      var elem = document.getElementById('Mod0EditRecord');
          for(var i = 0; i < elem.length; i++)
          {
            elem[i].setAttribute("disabled","disabled");
          }
      

      或者,如果您使用的是 jquery,您可以使用 .next() 方法来检索其他两个元素。

      【讨论】:

      • 感谢 devBinnooh 的回复。不幸的是,我认为您的建议不会奏效,因为 getElementById 只返回第一个匹配元素 - 这是我最初的问题。如果按钮是通过“class”而不是“id”指定的,那么可以使用 getElementsByName('Mod0EditRecord') 并按照您的建议获取数组。
      【解决方案3】:

      您不能使用 document.getElementById ,因为它会返回具有该 ID 的第一个元素。如果您使用的是 VanillaJS,我不会使用 jQuery,因为仅为此功能下载一个库是毫无用处的。

      这就是你要做的:使用document.getElementsByTagName 获取所有input 类型,检查它是否来自type submit 和disable。

      var inputs = document.getElementsByTagName('input');
      for(var i = 0; i < inputs.length; i++ ) {
          if(inputs[i].type === "submit") {
              var submitbtn = inputs[i];
              submitbtn.setAttribute("disabled", "disabled");
          }
      }
      

      JSFiddle.

      【讨论】:

      • 谢谢 MarcoK。我同意这是一个轻量级的解决方案。我的网页上已经有 Jquery 用于其他事情。所以我最终使用了托尼的解决方案。但如果我不这样做,我会更喜欢你的。
      猜你喜欢
      • 2015-08-28
      • 1970-01-01
      • 2023-03-16
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      相关资源
      最近更新 更多