繁体   English   中英

为什么我的提交按钮没有隐藏?

[英]Why doesn't my submit button hide?

背景:我在一个页面上有一个表单,其中包含多个div,这些表单的开始仅显示第一个div,而其他所有隐藏。 进行选择时,将根据上一个div中的选择动态构建并显示下一个表单div。 以前的所有表格div仍然显示。 随着选择的进行,您最终会看到更多的表单字段。 为了简洁起见,我没有将整个代码放在这里。

我为此使用JavaScript。 我不是有意使用jQuery的,因为在开始依赖库之前,我仍在努力使自己完全适应JavaScript。

我的问题:我想隐藏表单末尾的“提交”按钮,直到显示最后一个表单div。 我正在尝试的所有方法都无法正常工作,并且我已经用尽了在网上找到的所有内容。 它应该确实很简单,但是显然它们对于我不了解JavaScript的Submit按钮必须是特殊的。

我所做的事情:以下是我认为应该可以的工作,但不行(我将代码限制在手头,但是如果有人认为它更深,那么我将很乐意编辑并添加更多代码)。 onclick()函数适用于otherDiv。 例如,当您单击倒数第二个时,OtherDiv将按预期显示。 它还应该显示“提交”按钮,但不显示(并且“提交”按钮没有隐藏在第一位)。

问题很简单,无论出于何种原因,在onclick()事件发生时,提交按钮都不会在页面加载时被赋予“无”的样式,并且也不会被赋予“阻止”的样式。

我在控制台中看到以下错误,该错误在使用GetElemntsByName定位提交按钮时显示,如下所示,但不确定为什么会得到它。 我理解该错误,而不是为什么我使用GetElementsByName提交按钮的目标引发了该错误。

我还尝试了通过ID与GetElementById来定位提交按钮,并且尽管下面的控制台错误消失了,但是我仍然没有隐藏提交按钮。

我在下面显示了带有GetElementsByName错误的代码,因为我想了解该错误以及解决隐藏的提交按钮问题。

安慰

TypeError: pdfButton.style is undefined
if(pdfButton) {pdfButton.style.display = 'none'};

的HTML

<form id="buildShopDrawing" name="BuildShopDrawing" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="submit" name="buildPDf" id="buildPDf" class="buildPDFbutton" value="Build the Shop Drawings PDF">    
</form>

Java脚本

    function preparePage() {

        // Set common divs to var for ease of use
        var pdfButton = document.getElementsByName('buildPDF');

      // hide: submit button until last form is revealed    
      for (var i = 0; i < door.length; i++) {
        door[i].onclick = function() {
          if(this.checked) {
            otherDiv.style.display = 'block';
            pdfButton.style.display = 'block';
          }
        };
     };

      //hide form divs on initial page load
     if(pdfButton) {pdfButton.style.display = 'none'};

    } //end preparepage

// Do not execute JavaScript until page is loaded
window.onload =  function() {
preparePage();
};

一如既往地感谢您的帮助!

你有错字 id="buildPDf" != ('buildPDF')

(正如其他人指出的那样,请使用getElementById

您需要使用document.getElementById而不是返回集合的getElementsByName,这意味着您只能通过其索引访问元素。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM