javascript - 在 javaScript 中关闭模态后不添加表中的新行

标签 javascript html css

我正在尝试做简单的事情。我有一页顶部有按钮,下面是空的 html 表。当我单击按钮模式弹出时,我有额外的文本框和下拉两个按钮,取消和保存。当我单击“保存”按钮时,我想显示文本框中的数据并作为表格中的新行下拉。 但什么都没有发生。模态消失,但表中没有添加新行。 当我尝试调试它时,一切似乎都是正确的,没有发现异常,所有值都已正确添加,但仍然没有。 我猜问题是由模态引起的,有人知道如何解决这个问题吗?

这是我的代码:

<html>
<head>
  <title>Battery Test App</title>
  <link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
  <button id="btnAddNew">Add new</button>
  <br>
  <br>
  <table id="results" width="360">
    <thead>
      <tr>
        <th scope="col" width="120">Date Created</th>
        <th scope="col" width="120">Name</th>
        <th scope="col" width="120">Tests</th>
      </tr>
    </thead>
  </table>
  <div id="modalAddNewTest" class="modal">
    <div class="modal-content">
      <span class="close">x</span>
      <form name="formTestInfo" method="post">
        Name:<br>
        <input type="text" id="tbName" name="tbName">
        <p id="nameVal"></p>
        Test:<br>
        <select id="ddlTest">
          <option value="belbin">Belbin</option>
          <option value="raven">Raven</option>
          <option value="ppa">PPA</option>
          <option value="ppaPlus">PPA+</option>
          <option value="basicKnowledge">Basic Knowledge</option>
          <option value="pct">PCT</option>
        </select>
        <br>
        <br>
        <button id="btnCancel">Cancel</button>
        <button id="btnSave" onclick="validateForm(return false;);">Save</button>
      </form>
    </div>
  </div>

  <script type="text/javascript">
      var nameValidation;
      var modal = document.getElementById('modalAddNewTest');
      var btn = document.getElementById("btnAddNew");
      var btnSave = document.getElementById("btnSave");
      var span = document.getElementsByClassName("close")[0];

      btn.onclick = function() {
          modal.style.display = "block";
      }

      span.onclick = function() {
          modal.style.display = "none";
      }

      function validateForm() {
        var x = document.forms["formTestInfo"]["tbName"].value;
        if (x == null || x == "") {
            nameValidation = "Name must be filled out";
            document.getElementById("nameVal").innerHTML = nameValidation;
        }
        else
        {
            var table = document.getElementById("results");
            var name = document.getElementById("tbName").value;
            var e = document.getElementById("ddlTest");
            var selectedTest = e.options[e.selectedIndex].value;

            var today = new Date();
            var dd = today.getDate();
            var mm = today.getMonth()+1; 
            var yyyy = today.getFullYear();

            if(dd<10) {
                dd='0'+dd
            } 

            if(mm<10) {
                mm='0'+mm
            } 

            today = mm+'/'+dd+'/'+yyyy;

            //In the first step using InsertRow function you are creating a first row i.e tr 
            var row = table.insertRow(table.rows.length);

            //In the second step you create a cell i.e td dynamically
            var cell1 = row.insertCell(0);
            var cell2 = row.insertCell(1);
            var cell3 = row.insertCell(2);

            // Here in step 3 you can add data to your cells from the modal popup inputs(According to your logic)
            cell1.innerHTML = today;
            cell2.innerHTML = name;
            cell3.innerHTML = selectedTest;
        }
    }
</script>
</body>
</html> 

最佳答案

希望对你有帮助

将此添加到您的按钮 role="button"type="button"。不确定,但根据我使用旧版 maxthon 浏览器的经验,有些浏览器会将按钮视为“提交”类型。

<button id="btnSave" role="button" type="button" onclick="validateForm(return false;);">Save</button>

并且您需要修复正在调用的内联 js 函数。你有拼写错误,你添加了“;”在 return false 和.. 你可以删除“return false”。

尝试像下面这样做:

<button id="btnSave" role="button" type="button" onclick="validateForm();">Save</button>

关于javascript - 在 javaScript 中关闭模态后不添加表中的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38870177/

相关文章:

file - 如何将外部文件中的文本插入到 div 中?

javascript - CSS/Javascript 菜单固定位置问题(滚动时)

javascript - 带有 jQ​​uery append() 的 CSS 3 动画

javascript - jQuery 验证,仅限数值

javascript - angularJS:谷歌地图未加载地点API

javascript - Isotope.js 动态改变排序数据值

html - struts <s :form > tag used for? 的 id 属性是什么

css - CSS和div的问题

javascript - 使用 SAPUI5 中的文本字段显示正确的日期

html - Bootstrap 3 如何在不同列中的相同水平位置设置按钮