Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何自动';单击';加载时数据表中的第一行_Javascript_Jquery_Datatable_Datatables - Fatal编程技术网

Javascript 如何自动';单击';加载时数据表中的第一行

Javascript 如何自动';单击';加载时数据表中的第一行,javascript,jquery,datatable,datatables,Javascript,Jquery,Datatable,Datatables,我有一个Jquery数据表,我正在将SQL数据加载到该数据表中,这将显示X个包含该数据的行,然后我可以单击数据表上的一行,并使用Jquery在用户屏幕上填充输入。现在,我希望能够让DataTable在加载时自动“单击”第一行,这样它就可以用第一个值填充这些输入(减少人工交互) 代码如下: <h1>My Table</h1> <style> #myTable tr { cursor: pointer; } #myTable {

我有一个Jquery数据表,我正在将SQL数据加载到该数据表中,这将显示X个包含该数据的行,然后我可以单击数据表上的一行,并使用Jquery在用户屏幕上填充输入。现在,我希望能够让DataTable在加载时自动“单击”第一行,这样它就可以用第一个值填充这些输入(减少人工交互)

代码如下:

<h1>My Table</h1>

<style>
  #myTable tr {
    cursor: pointer;
  }

  #myTable {
      width: 100px;
  }

  #myTable tbody tr:hover {
    background: #d7d7d7 !important;
  }

  #myTable td {
    background: transparent !important;
      width: 100px;
  }

  #myTable {
    margin-top: 6px;
  }

  #myTable_paginate .previous,
  #myTable_paginate .next {
    padding: 2px 4px;
    margin: auto 10px;
  }
  
</style>
<table id="myTable"></table>


<script>
  (() => {
    return true;
  })();

  function convertmyTableData(jsonData = {data: [{'none': ''}]}) {
    const mapped = [];

    const keys = [];
    Object.keys(jsonData.data[0]).forEach(key => keys.push({'title': key}));

    for (let option of jsonData.data) {

      const mappedOption = [];
      for (let key of Object.keys(option)) {
        if (option[key]) {
          mappedOption.push(option[key]);
        }
      }
      if (mappedOption.length > 0) {
        mapped.push(mappedOption);
      }
    }

    $('#myTable').dataTable({
      data: mapped,
      columns: keys,
      "aoColumnDefs": [{
        "sTitle": "Test"
        , "aTargets": ["myTable_records"]
      }, {
        "aTargets": [0]
        , "bSortable": true
        , "mRender": function (value, type, full) {
          return value;
        }
      }]
    });

      $('#myTable').dataTable( {
          "autoWidth": true
      } );



    const clickRow = function (e) {
      var el = $('#myTable').dataTable();
      var iPos = el.fnGetPosition(this);
      var aData = el.fnGetData(iPos);

        $('#Input_1').val(aData[0]);
        $('#Input_2').val(aData[1]);
   
    }

    $("#myTable").on("click", "tr", clickRow);

      $('#myTable').dataTable( {
          "autoWidth": true
      } );
  }



  function myTableLookup() {
    let ID = '2343242';

    fetch(`/spr/custom/ID/json/${ID}?myParameter=hello`)
    .then(response => {
      console.log(response.ok);
          return response.json();

    }).then(jsonData => {
          console.log(jsonData);
      convertmyTableData(jsonData);

    }).catch(err => {
      console.warn('Error!', err);
    });
  }

  myTableLookup();
</script>
我的桌子
#myTable tr{
光标:指针;
}
#我的桌子{
宽度:100px;
}
#myTable tbody tr:悬停{
背景:#d7d7d7!重要;
}
#myTable td{
背景:透明!重要;
宽度:100px;
}
#我的桌子{
边缘顶部:6px;
}
#myTable_paginate.上一页,
#myTable_paginate.下一步{
填充物:2px4px;
保证金:自动10px;
}
(() => {
返回true;
})();
函数convertmyTableData(jsonData={data:[{'none':''}]}){
常量映射=[];
常量键=[];
Object.keys(jsonData.data[0]).forEach(key=>keys.push({'title':key}));
for(让jsonData.data的选项){
常量mappedpoption=[];
for(让对象的键。键(选项)){
如果(选项[键]){
mappedpoption.push(选项[key]);
}
}
如果(mappedpoption.length>0){
mapped.push(mappedpoption);
}
}
$('#myTable')。数据表({
数据:地图,
列:键,
“aoColumnDefs”:[{
“针”:“测试”
,“aTargets”:[“myTable_记录”]
}, {
“目标”:[0]
,“可移植”:真
,“mRender”:函数(值、类型、完整){
返回值;
}
}]
});
$('#myTable')。数据表({
“自动宽度”:真
} );
常量clickRow=函数(e){
var el=$('#myTable').dataTable();
var iPos=el.fnGetPosition(本);
var aData=el.fnGetData(IPO);
$('#Input_1').val(aData[0]);
$('#Input_2').val(aData[1]);
}
$(“#我的表格”)。在(“单击”、“tr”和“单击行”);
$('#myTable')。数据表({
“自动宽度”:真
} );
}
函数myTableLookup(){
设ID='2343242';
fetch(`/spr/custom/ID/json/${ID}?myParameter=hello`)
。然后(响应=>{
log(response.ok);
返回response.json();
}).然后(jsonData=>{
console.log(jsonData);
convertmyTableData(jsonData);
}).catch(错误=>{
console.warn('Error!',err);
});
}
myTableLookup();
$(“#我的表格”)。在(“单击”、“tr”,单击行);-用于当我单击任何给定行时,它获取值并填充屏幕上的必填字段

我希望这种情况在加载时自动发生,并且只发生在第一行[0]


谢谢。

我认为您应该使用focus()方法

使用此代码

$("#myTable>tbody>tr:first").trigger('click');

或者尝试使用
setTimout

setTimeout(function(){ $("#myTable>tbody>tr:first").trigger('click'); }, 3000);

setTimeout(function(){ $("#myTable>tbody>tr:first").trigger('click'); }, 3000);