簡體   English   中英

提交表格后表格數據清晰

[英]table data is clear after submitting the form

我正在使用 javascript

當我提交表單時,我將數據存儲在表格中,但表格數據也很清楚

索引.html

<body>
<form id='freg'>

  <label>firstname</label>
  <input type='text' id='fname'>

  <label>lastname</label>
  <input type='text' id='lname'>

  <label>officelocation</label>
  <input type='text' id='location'>

  <input id='btn' type='submit' value='submit' onclick='onFormSubmit()'/>

</form>
<br/> <br/>

<table>
   <thead>
      <tr>
        <th>firstname</th>
        <th>lastname</th>
        <th>location</th>
      </tr>
    </thead>
    <tbody>
       <td id='ffname'></td>
       <td id='llname'></td>
       <td id='olocation'></td>
    </tbody>
</table>

<script type='text/javascript' src='index.js'></script>


index.js


function onFormSubmit() {


 document.getElementById('fname').value;
 document.getElementById('lname').value;
 document.getElementById('location').value;

 readFormData();

}

function readFormData() {

var data = {};

data.fname = document.getElementById('fname').value;
data.lname = document.getElementById('lname').value;
data.location = document.getElementById('location').value;

insertnewrecord(data);

}

function insertnewrecord(data) {

document.getElementById('ffname').innerHTML = data.fname;
document.getElementById('llname').innerHTML = data.lname;
document.getElementById('olocation').innerHTML = data.location;


  resetform();

}

function resetform() {

document.getElementById('fname').value = "";
document.getElementById('lname').value = "";
document.getElementById('location').value = "";

}




我正在使用帶有 javascript 的 html

當我提交表單時,我無法在表中看到數據,我進行了調試,我可以看到數據存儲在表中,但隨后表中的數據很清楚。

這是我的解決方案,您需要每次插入一行,然后不要提交,只需清除表單即可!

參考

 function onFormSubmit() { insertRow(); } function insertRow() { var fname = document.getElementById('fname').value; var lname = document.getElementById('lname').value; var location = document.getElementById('location').value; var table = document.getElementById("myTable"); // Create an empty <tr> element and add it to the 1st position of the table: var row = table.insertRow(-1); // Insert new cells (<td> elements) at the 1st and 2nd position of the "new" <tr> element: var cell1 = row.insertCell(0); var cell2 = row.insertCell(1); var cell3 = row.insertCell(2); // Add some text to the new cells: cell1.innerHTML = fname; cell2.innerHTML = lname; cell3.innerHTML = location; resetform(); } function resetform() { document.getElementById('fname').value = ""; document.getElementById('lname').value = ""; document.getElementById('location').value = ""; }
 <body> <form id='freg'> <label>firstname</label> <input type='text' id='fname'> <label>lastname</label> <input type='text' id='lname'> <label>officelocation</label> <input type='text' id='location'> <input id='btn' type='button' value='submit' onclick='onFormSubmit()' /> </form> <br/> <br/> <table id="myTable"> <thead> <tr> <th>firstname</th> <th>lastname</th> <th>location</th> </tr> </thead> <tbody> </tbody> </table>

你只需要阻止表單刷新頁面然后你只需要刪除清除表單單元格 index.html 的功能

<body>
<form id='freg'>

    <label>firstname</label>
    <input type='text' id='fname'>

    <label>lastname</label>
    <input type='text' id='lname'>

    <label>officelocation</label>
    <input type='text' id='location'>

    <input id='btn' type='submit' value='submit' onclick="event.preventDefault(); onFormSubmit()" /><!-- <<<<<<<<<<<<<<<<< -->


</form>
<br /> <br />

<table>
    <thead>
        <tr>
            <th>firstname</th>
            <th>lastname</th>
            <th>location</th>
        </tr>
    </thead>
    <tbody>
        <td id='ffname'></td>
        <td id='llname'></td>
        <td id='olocation'></td>
    </tbody>
</table>

<script type='text/javascript' src='index.js'></script>

index.js

function onFormSubmit() {


    document.getElementById('fname').value;
    document.getElementById('lname').value;
    document.getElementById('location').value;

    readFormData();

}

function readFormData() {

    var data = {};

    data.fname = document.getElementById('fname').value;
    data.lname = document.getElementById('lname').value;
    data.location = document.getElementById('location').value;

    insertnewrecord(data);

}

function insertnewrecord() {

    document.getElementById('ffname').innerHTML = data.fname;
    document.getElementById('llname').innerHTML = data.lname;
    document.getElementById('olocation').innerHTML = data.location;


    //  resetform();  <<<<<<<<<<<<<<<<< 


}

function resetform() {

    document.getElementById('fname').value = "";
    document.getElementById('lname').value = "";
    document.getElementById('location').value = "";

}

您應該在 js 腳本中全局聲明數據對象。 此外,在自定義按鈕單擊功能中使用event.preventDefault()

此外,我更改了 insertnewrecord() 函數以處理表中的多個插入操作。

檢查以下代碼:

 var data = {}; function onFormSubmit(e) { readFormData(); e.preventDefault(); } function readFormData() { data.fname = document.getElementById("fname").value; data.lname = document.getElementById("lname").value; data.location = document.getElementById("location").value; insertnewrecord(data); } function insertnewrecord(data) { var table = document.getElementById("show-data"); table.innerHTML += `<tr> <td>${data.fname}</td> <td>${data.lname}</td> <td>${data.location}</td> </tr>`; resetform(); } function resetform() { document.getElementById("fname").value = ""; document.getElementById("lname").value = ""; document.getElementById("location").value = ""; }
 <body> <form id='freg'> <label>firstname</label> <input type='text' id='fname'> <label>lastname</label> <input type='text' id='lname'> <label>officelocation</label> <input type='text' id='location'> <input id='btn' type='submit' value='submit' onclick='onFormSubmit(event)' /> </form> <br/> <br/> <table> <thead> <tr> <th>firstname</th> <th>lastname</th> <th>location</th> </tr> </thead> <tbody id="show-data"> <td id='ffname'></td> <td id='llname'></td> <td id='olocation'></td> </tbody> </table> <script type='text/javascript' src='index.js'></script>

使用 event.preventDefault(); 在您的 onFormSubmit 函數中https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM