После того, как ячейки collspan и rowspan плавают вне таблицы - PullRequest
0 голосов
/ 03 февраля 2020

https://drive.google.com/drive/my-drive это простой календарь, который можно использовать для записи на прием. я пробовал многие решения, такие как циклы и условные операторы, но я не могу получить правильный вывод, основная проблема заключается в том, что когда диапазон калибровки и диапазон строки происходят в то время, когда ячейки плавают вне таблицы, общее число плавающих ячеек равно ( (enddate - startdate) * (endtime - starttime) + (enddate - startdate) + (endtime - starttime)) эта формула.

var startdate= "";
        var enddate= "";
        var delcell = ((enddate - startdate) * (endtime - starttime) + (enddate - startdate) + (endtime - starttime)/2 );
        var starttime= "";
        var endtime= "";

        var label = "";
        function datasubmit(){
            document.getElementById('s1');
            startdate = document.getElementById('startd').value;
            enddate = document.getElementById('endd').value;
            starttime = document.getElementById('startt').value;
            endtime = document.getElementById('endt').value;
            label = document.getElementById('label').value;
            document.getElementById('table').innerHTML = ''
            calender()
    }



        function calender(){
            for (var j = 0; j <= 24; j++) {

            let row = table.insertRow(j);

            for (var i = 1; i <= 30; i++) {
                if(j==0){
                    var newcell = row.insertCell(-1);
                    newcell.innerHTML = i + 'Jan';

                }else{
                    var newcell = row.insertCell(-1);
                    newcell.innerHTML = '';

                    if(j==starttime && i==startdate ){
                        newcell.setAttribute('rowspan', (endtime-starttime)+1);
                        newcell.setAttribute('colspan', (enddate-startdate)+1);

                        newcell.innerHTML =label;
                    }

                }
            }

            var newcell = row.insertCell(0);
            newcell.innerHTML = j + 'HR';
        }
        }
        calender()
<!DOCTYPE html>
<html>
<head>
    <title>calender in js</title>
    <style type="text/css">
        table td{
            border: 1px solid grey;
            padding: 4px;

        }

    </style>

</head>
<body> 
    <form autocomplete="off" id="s1">
        start date <input type="text" name="startd" id="startd">
        end date <input type="text" name="endd" id="endd"><br><br>
        start time <input type="text" name="startt" id="startt">
        end time <input type="text" name="endt" id="endt"><br><br>
        inter name <input type="text" name="label" id="label">
        <button type="button" name="submit" id="submit" onclick="datasubmit();">Submit</button><br><br>

    </form>
    <table id="table" style="border:2px solid black">

    </table>
  </body>
  </html>

, так как я вычислил плавающие ячейки ((enddate - начальная дата) * (конечное время - начальное время) + (конечная дата - начальная дата) + (конечное время - начальное время))

...