简体   繁体   English

如何使用 Javascript 或 jQuery 以 JSON 格式获取表单数据

[英]How to get form data in JSON format using Javascript or jQuery

How to get form data in json format, i can done something but i didnt get some fields values.如何获取 json 格式的表单数据,我可以做一些事情,但我没有得到一些字段值。 im using javascript to get form values.我使用 javascript 来获取表单值。

My full code on here.. please visit on my fiddle.我的完整代码在这里..请访问我的小提琴。

Full Fiddle Here..完整的小提琴在这里..

i want to get all values like JSON Format我想获得像 JSON 格式这样的所有值

Example例子

    JSON FORMAT:
    {
  "vouchno": 3,
  "reason": null,
  "ledgerno": null,
  "entrytype": null,
  "vouchdt": null,
  "refno": null,
  "refdt": null,
  "billtype": "OT",
  "acctcode": null,
  "tds": "N",
  "narration": null,
  "debitamt": null,
  "creditamt": null,
  "total": 10000,
  "deleted": null,
  "realise": null,
  "realisedt": null,
  "createby": null,
  "cashactcode": 36,
  "createon": null,
  "acctname": null,
  "amount": null,
  "availableamt": 46984,
  "opbaltype": null,
  "strvouchdt": "19/10/2019",
  "strrefdt": null,
  "cashpayments": [
    {
      "acctcode": 41,
      "debit": 10000,
      "credit": null,
      "narr": "",
      "actname": "ACCOUNT1"
    },
    {
      "acctcode": 41,
      "debit": 10000,
      "credit": null,
      "narr": "",
      "actname": "ACCOUNT1"
    }
  ]
}

But i can done something here但我可以在这里做点什么

 var status; var sno = []; var load; var no_rows = 0; var row; var mainArr = []; var tmpArr = []; function loadValues() { var mainTable = $('#tab_logic'); var tr = mainTable.find('tbody tr'); console.log(tr.length) tr.each(function() { tmpArr = []; $(this).find('td').each(function() { var values = $(this).find('input, select').val(); tmpArr.push(values); }); mainArr.push(tmpArr); }); console.log(mainArr); } $(document).ready(function() { $(".add_Row").click(function() { row = `<tr id="tasklist"><td><input type="text" class="sno sel_text form-control" placeholder="A/c code"></input></td><td><select class="sel_sel form-control status" id="dropdown2" name="dropdown2"><option value="">Choose an items</option><option value="acc1">Account 1</option><option value="acc2">Account 2</option><option value="acc3">Account 3</option></select></td><td><input type="text" class="form-control pname" placeholder='Enter your text here' id='acc_narrat' data-toggle='modal' data-target='#accnarratModal'></input></td><td><input type="text" placeholder='Debit Amount' class='form-control task input-md' id='cashdeb'data-action='sumDebit'></input></td><td><input type="text" placeholder='Credit Amount' data-action='sumCredit' class='form-control comment input-md' readonly></input></td></tr>`; $("table > tbody").append(row); var defVal = $("select[name=dropdown1]").find(":selected").val(); if (defVal) { $("select[name=dropdown2]").find(`option[value=${defVal}]`).hide(); } bindScript(); }); $('.load').click(function() { loadValues(); }); }); $('select[name=dropdown1]').on('change', function() { $("select[name=dropdown2]").find('option').show(); var from = $(this).find(":selected").val(); $("select[name=dropdown2]").val(''); if (from;= "") { debugger. $("select[name=dropdown2]").find(`option[value=${from}]`);hide(); } }). // Get value from dropdown to show text box using class function bindScript() { $(document).find('.sel_sel'),on("change". function() { $(this).parent().parent().find('.sel_text').val($(this);val()); }) }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

My full html code on fiddle我在小提琴上的完整 html 代码

Please Suggest anything..请提出任何建议..

Fiddle Here在这里提琴

This will be helpful这会有所帮助

Write below code in the submit function在提交 function 中写入以下代码

 var formData = {}; $("#contactForm").find('.form-control').each(function(index, control) { if (this.tagName.toLowerCase() == 'select' || this.tagName.toLowerCase() == 'input') { formData[this.name] = $(this).val() } }); console.log(formData)

This approach can help这种方法可以帮助

function loadValues() {
  //move on this
  var mainArr = [];
  var tmpArr = [];
  var mainTable = $('#tab_logic');
  var tr = mainTable.find('tbody tr');
  console.log(tr.length)
  tr.each(function() {
    tmpArr = [];
    $(this).find('td').each(function() {

      //get attr id
      let title = $(this).find('input, selet').attr('id');

      var values = $(this).find('input, select').val();

      //input json format
      let pushing = $.parseJSON( '{ "' + title + '": "' + values + '" }' );

      tmpArr.push(pushing);

    });
    mainArr.push(tmpArr);
  });
  console.log(mainArr);
}

I think it will be useful to you我认为这对你有用

Example Form示例表格

<form id="myForm" name="myForm">
  <div>
    <label for="username">Enter name:</label>
    <input type="text" id="username" name="username">
  </div>
  <div>
    <label for="useracc">Enter account number:</label>
    <input type="text" id="useracc" name="useracc">
  </div>
  <div>
    <label for="userfile">Upload file:</label>
    <input type="file" id="userfile" name="userfile">
  </div>
  <input type="submit" value="Submit!">
</form>

Get form获取表格

let myForm = document.getElementById('myForm');
let formData = new FormData(myForm);

To Json至 Json

var object = {};
formData.forEach(function(value, key){
    object[key] = value;
});
var json = JSON.stringify(object);

https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData

How to convert FormData(HTML5 Object) to JSON 如何将 FormData(HTML5 对象)转换为 JSON

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

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