简体   繁体   English

从表单数据填充数据表

[英]Populating datatable from Form data

I am looking to populate a data table from the data input into the form but not having any joy... 我想从输入到表单的数据中填充数据表,但没有任何乐趣...

When I press submit it clears the form and returns to top of screen but does not populate the table 当我按提交时,它将清除表单并返回到屏幕顶部,但不会填充表格

A scaled-down version of the code: 代码的缩减版本:


  
 
  
  
  
$(document).ready(function() {
  

  		var t = $('#job-table').DataTable();
  		var counter = 1;

  		$('#submit').on('click', function() {
		var text1 = $(".add-company").val();
	    var text2 = $(".add-contact").val();
	    var text3 = $(".add-from").val();
	    var text4 = $(".add-to").val();
	    var text5 = $(".add-driver").val();
	    var text6 = $(".add-income").val();
	    var text7 = $(".add-payment").val();
	    t.row.add([
		    text1,
		    text2,
		    text3,
		    text4,
		    text5,
		    text6,
		    text7
		]).draw(false);

		counter++;
  		});

  		// Automatically add a first row of data
  		$('#submit').click();
});

The jQuery, as far as I can tell is correct so unsure what is stopping the table from populating. 据我所知,jQuery是正确的,因此不确定是什么阻止了该表的填充。

Any help would be amazing 任何帮助都将是惊人的

You have two possibilities: 您有两种可能性:

  1. change the type submit to button for your submit button 将类型“提交到”按钮更改为“提交”按钮
  2. prevent default action (form submission): e.preventDefault() : 阻止默认操作(表单提交): e.preventDefault()

Moreover, I would suggest to change how to trigger events in jQuery: 此外,我建议更改触发jQuery事件的方式:

from: $('#submit').click(); 来自: $('#submit').click();

to: $('#submit').trigger('click'); 到: $('#submit').trigger('click');

The snippet: 片段:

 var t = $('#job-table').DataTable(); var counter = 1; $('#submit').on('click', function(e) { e.preventDefault(); var text1 = $(".add-company").val(); var text2 = $(".add-contact").val(); var text3 = $(".add-from").val(); var text4 = $(".add-to").val(); var text5 = $(".add-driver").val(); var text6 = $(".add-income").val(); var text7 = $(".add-payment").val(); t.row.add([ text1, text2, text3, text4, text5, text6, text7, 0, 0 ]).draw(false); counter++; }); // Automatically add a first row of data $('#submit').trigger('click'); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> <link href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" rel="stylesheet"> <link href="https://cdn.datatables.net/1.10.12/css/jquery.dataTables.min.css" rel="stylesheet"> <script src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script> <div class="tile" id="tile-1"> <div class="addjob tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab"> <h2>Add info</h2> <form name="dataform" method="post"> <span> <p>Date:</p> <input class="add-date" type="date" placeholder="Placeholder Text"> </span> <span> <p>Customer/Company Name:</p> <input class="add-company" type="select" placeholder="Company-name Ltd" value="1"> </span> <span> <p>Contact Name:</p> <input class="add-contact" type="text" placeholder="John Doe" value="2"> </span> <span> <p>From:</p> <input class="add-from" type="text" placeholder="Address 1" value="3"> </span> <span> <p>To:</p> <input class="add-to" type="text" placeholder="Address 2" value="4"> </span> <span> <p>subbie Name:</p> <input class="add-driver" type="select" placeholder="Driver Name (Company)" value="5"> </span> <span> <p>Income (£):</p> <input class="add-income" type="text" placeholder="£120" value="6"> </span> <span> <p>subbie Payment (£):</p> <input class="add-payment" type="text" placeholder="£100" value="7"> </span> <span> <p>Driver Vat registered?</p> <input class="add-payment" type="text" placeholder="Yes/No" value="8"> </span> <span> <button id="submit" type="submit" value="submit">Submit</button> </span> </form> </div> <div class="viewalljob"> <h2>Job</h2> <table id="job-table" class="display" cellspacing="0" width="100%"> <thead> <tr> <th>Company Name</th> <th>Contact</th> <th>From</th> <th>To</th> <th>subbie</th> <th>Income (£)</th> <th>subbiePayment (£)</th> <th>Profit (£)</th> <th>Markup (%)</th> </tr> </thead> <tbody> </tbody> </table> </div> </div> 

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

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